Re: socket: optimisation python vs java
William Dode a écrit :
> On 04-10-2007, titi wrote:
>> Bonjour,
>>
>> afin de tester la rapidité d'un lien de réseau LAN, j'ai écrit un petit
>> client/serveur expérimental en python.
>> N'étant pas satisfait es performances, je l'ai réécrit en java.
>
> j'ai pas regardé tes sources, mais peut-être est-ce du à un appel à la
> résolution de nom. Essaye d'enlever la fonction getfqdn
>
> def getfqdn(name=''):
> return name
> import socket
> socket.getfqdn=getfqdn
>
Je pense qu'
Il ne s'agit pas de cela pour plusieurs raisons:
1/ je n'utilise pas la fonction getfqdn
hostname = socket.gethostname()
ip_address = socket.gethostbyname(hostname)
2/ j'utilise 'localhost' et '127.0.0.1' pour faire les tests
s.connect(('127.0.0.1', port))
3/ L'exécution du code montre que la lenteur n'est pas à l'état initial,
mais en régime établi.
Par ailleurs, la différence de débit semble assez significative:
en python de 0.9 à 2.6 Mo/s
en java de 78 à 123 Mo/s
Le ratio est donc de l'ordre de 50 à 80 fois plus rapide pour java.
De plus, en python, les performances se détériorent progressivement,
alors qu'elles restent constantes en java.
Un problème de garbage collector et d'allocation mémoire?
en python de 0.9 à 2.6 Mo/s:
delta : 3.80408096313 ... 10000000
débit montant: 2.62875582747 Mo/s
delta : 5.41259384155 ... 10000000
débit montant: 1.84754302516 Mo/s
delta : 6.65622591972 ... 10000000
débit montant: 1.50235285289 Mo/s
delta : 10.6284270287 ... 10000000
débit montant: 0.940872997767 Mo/s
delta : 2.35716700554 ... 10000000
en java de 78 à 123 Mo/s:
débit montant: 45.248867Mo/s
------>361.99094Mbits/s
delta : 0.846...104857600
débit montant: 118.20331Mo/s
------>945.62646Mbits/s
delta : 8.834...1048576000
débit montant: 113.199005Mo/s
------>905.59204Mbits/s
delta : 0.138...10485760
débit montant: 72.46377Mo/s
------>579.71014Mbits/s
delta : 0.698...104857600
débit montant: 143.26648Mo/s
------>1146.1318Mbits/s
delta : 8.455...1048576000
débit montant: 118.27321Mo/s
------>946.18567Mbits/s
delta : 0.139...10485760
débit montant: 71.942444Mo/s
------>575.53955Mbits/s
delta : 0.811...104857600
débit montant: 123.304565Mo/s
|