Afficher un message
Vieux 04/10/2007, 20h29   #6
titi
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: socket: optimisation python vs java

Cémoi a écrit :
> Salut,
>
> le résultat de mes essais, Python 2.5.1, Windows XP SP2, lancé dans
> IPython 0.8.1:
>
> In [2]: run server.py
> detection : 127.0.0.1
> Utilise : 127.0.0.1 3700
> handle
> delta : 0.0309998989105 ... 1048576
> debit montant: 32.2581697084 Mo/s
> ------> 258.065357667 Mbits/s
> Pause debut
> Pause fin
> delta : 0.109000205994 ... 5242880
> debit montant: 45.8714729428 Mo/s
> ------> 366.971783543 Mbits/s
> Pause debut
> Pause fin
> delta : 1.03099989891 ... 52428800
> debit montant: 48.4966099927 Mo/s
> ------> 387.972879942 Mbits/s
> Pause debut
> Pause fin
> delta : 0.0160000324249 ... 1048576
> debit montant: 62.4998733404 Mo/s
> ------> 499.998986723 Mbits/s
> Pause debut
> Pause fin
> delta : 0.0780000686646 ... 5242880
> debit montant: 64.1025076722 Mo/s
> ------> 512.820061377 Mbits/s
> Pause debut
> Pause fin
> delta : 1.0 ... 52428800
> debit montant: 50.0 Mo/s
> ------> 400.0 Mbits/s
> Pause debut
> Pause fin
> delta : 0.0309998989105 ... 1048576
> debit montant: 32.2581697084 Mo/s
> ------> 258.065357667 Mbits/s
> Pause debut
> Pause fin
> delta : 0.109999895096 ... 5242880
> debit montant: 45.4545888034 Mo/s
> ------> 363.636710427 Mbits/s
> Pause debut
> Pause fin
> delta : 1.07800006866 ... 52428800
> debit montant: 46.382186285 Mo/s
> ------> 371.05749028 Mbits/s
> Pause debut
> Pause fin
> delta : 0.0160000324249 ... 1048576
> debit montant: 62.4998733404 Mo/s
> ------> 499.998986723 Mbits/s
> Pause debut
> Pause fin
> delta : 0.108999967575 ... 5242880
> debit montant: 45.8715732787 Mo/s
> ------> 366.97258623 Mbits/s
> Pause debut
> Pause fin
> delta : 1.0 ... 52428800
> debit montant: 50.0 Mo/s
> ------> 400.0 Mbits/s
>
> Par rapport à ton code rien de changé, à part ip_address = '127.0.0.1'


okay.

> dans le __main__,


> et viré les accents (IPython les gère mal).


Bizarre, et inattendu!

> Et comme tu peux le voir, je ne constate pas de baisse de régime.
> Est tu sûr de réellement passer par 127.0.0.1 lors de tes essais en Python ?


Non.

> Sur quel OS fais tu tes essais ?


Debian GNU/Linux 4.0


et plus précisément:

Linux 2.6.18.070711 #2 SMP Wed Jul 11 09:25:23 CEST 2007 i686 GNU/Linux

mais aussi

Linux 2.6.18-4-amd64 #1 SMP Fri May 4 00:37:33 UTC 2007 x86_64 GNU/Linux

Le système est paramétré avec des locales françaises-UTF-8:
LANG=fr_FR.UTF-8
LC_CTYPE="fr_FR.UTF-8"
LC_NUMERIC="fr_FR.UTF-8"
LC_TIME="fr_FR.UTF-8"
LC_COLLATE="fr_FR.UTF-8"
LC_MONETARY="fr_FR.UTF-8"
LC_MESSAGES="fr_FR.UTF-8"
LC_PAPER="fr_FR.UTF-8"
LC_NAME="fr_FR.UTF-8"
LC_ADDRESS="fr_FR.UTF-8"
LC_TELEPHONE="fr_FR.UTF-8"
LC_MEASUREMENT="fr_FR.UTF-8"
LC_IDENTIFICATION="fr_FR.UTF-8"

> Quelle version de Python ?


essentielement
Python 2.4.4 (#2, Apr 5 2007, 20:11:18)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2

mais aussi
Python 2.4.4 (#2, Apr 5 2007, 18:43:10)
[GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2



> Au passage, SocketServer.ThreadingMixIn ne sert à rien,


Même si je veux un thread différent pour chaque client?

> un petit coup de
> PEP-8 dans ton code ferait du bien à tes yeux,


http://www.python.org/dev/peps/pep-0008/

Certes, mais pour le moment, il s'agissait juste d'un test très
expérimental.

> et une ligne du style #
> -*- coding: latin-1 -*- juste après celle du "hashbang" soulagerait
> l'interpréteur ;o)


Le problème c'est qu'un mélange de fichiers latin-1 et utf-8 n'est pas
très facile à gérer.

> Je suis tellement loin de tes perfs que je n'ai même pas cherché si une
> quelconque optimisation était de rigueur.


L'utilisation de l'option -O me permet de passer de 0,7 à 7.
Elle me permet également d'avoir un temps d'exécution constant.
La ligne latin1 ne semble pas avoir d'impact.

Reste à savoir comment passer de 7 à 50 ...



  Réponse avec citation
 
Page generated in 0,06770 seconds with 9 queries