fr . comp . lang . python


Service Usenet Gratuit - You The Net .Com Consultez les groupes de news usenet nntp avec www.youthenet.com Postez et suivez voos fils de discussions gratuitement avec you the net .com le service gratuit de news en ligne

Re: Optimisation sur Fr Comp Lang Python



Groupes les plus fournis
hierachie de merde comp mail serveurs tv tnt lettres langues-anciennes grec usenet-fr emile durkheim comp sys mac programmation lettres langues-anciennes latin usenet usages rec tv series petites-annonces rencontres comp usenet lecteurs-de-news informations comp lang perl sci astronautique comp os unix mac rec sport arts-martiaux comp stockage sci linguistique rec arts musique jazz rec photo materiel


Derniers posts youthenet
Re: Démission pour création d'entreprise commerce ou service Que pensez-vous de la doctrine de James Madison ? Re: envoi des données à un serveur html la demeure du chaos Re: Alice au pays de Free (d'après la t ribune) Re: Est-ce ue violation de la GPL? Re: L'ultra libéralisme du chemin de fer prôné par Sarkozy... Président langue de bois ? la compagnie de l'autre

actualité

GFI LANguard NSS 9 fait son entrée
Silicon.fr - 27 nov 2008
Enfin, le langage Python permettra de créer des scripts de vérification personnalisés. Ce produit est disponible à un prix public démarrant à 224 euros HT, ...
GFI LANguard NSS v9, protection complète du réseau Categorynet.com (Communiqué de presse)
2 autres articles
source

actualité

Les irrésistibles Monty Python sur YouTube
DigitalWorld.fr - 24 nov 2008
Toujours drôles mais tout de même énervés du piratage de leur 'uvre sur YouTube, les Monty Python investissent la plateforme de partage vidéo en créant leur ...
source

Accueil |  Ajouter aux Favoris |  Inscription |  connexion |  Flux RSS de fr.comp.lang.python |

fr . comp . lang . python

Re: Optimisation



accueil . fr . comp . lang . python




Re: Optimisation

   
Sujet: Re: Optimisation
De: bdesth.quelquechose (l' arobase) free.quelquepart.fr (Bruno Desthuilliers)
Groupes: fr.comp.lang.python
Organisation: Guest of ProXad - France
Date: 10. Sep 2008, 17:06:56
Christophe a écrit :
pil91 a écrit :
(snip)
Je pensais améliorer les choses en remplacant la concaténation de ma
chaine un append dans un tableau, puis un join
(...)
Excès d'autosatisfaction, c'est quif quif, 18s,  sur 1 000 000
d'enregistrement avec cette structure

Ah oui, à ce sujet l'implémentation CPython optimise automatiquement les longues suites de concaténations dans une même string de la façon dont tu le fais.

Plus ou moins... la version avec un assignement augmenté (s += xxx) est un poil plus rapide que celle avec un réassignement (s = s + xxx)

Un petit bench valant mieux qu'un long discours:

from timeit import Timer
repeat = xrange(100000)

def concat():
     s = ''
     for i in repeat:
         s = s + 'aaaaa'

def concat_aug():
     s = ''
     for i in repeat:
         s += 'aaaaa'

def append_join():
     s = []
     for i in repeat:
         s.append('aaaaa')
     s = ''.join(s)

def local_append_join():
     s = []
     append = s.append
     for i in repeat:
         append('aaaaa')
     s = ''.join(s)

def comp_join():
     s = ''.join('aaaaa' for i in repeat)

timers = [
     (funcname, Timer('%s()' % funcname, 'from __main__ import %s' % funcname))
     for funcname in ('concat', 'concat_aug', 'append_join', 'local_append_join', 'comp_join')
     ]

for funcname, t in timers:
     print funcname, t.timeit(100)


Résultats ici (python 2.5.1 sous gentoo-linux):

concat 3.99100494385
concat_aug 3.96803593636
append_join 6.26043510437
local_append_join 3.67693090439
comp_join 3.72800898552

Le mauvais résultat de append_join par rapport à local_append_join s'explique par le hit dû au lookup de list.append, suivi de l'instanciation de l'objet méthode. Comme quoi cette simple optimisation (localiser les methodes appelées dans une boucle 'intensive') est très payante. Par contre, dans le cas de l'OP, je ne sais pas si ce sera vraiment plus intéressant (pour la boucle intérieure de do_import) dans la mesure où c'est, justement dans une boucle imbriquée. Mais bon, pil, tu peux tester les deux... AMHA, selon le jeu d'essai (données sources), tu aura des résultats en faveur tantôt de la solution local_append_join, tantôt en faveur de la solution comp_join.

Avec une version un peu plus ancienne de Python, tu aurais certainement vu une très grande amélioration.

Aucun doute....


Date Sujet  Auteur
10.09. * Optimisationpil91
10.09. +* Re: OptimisationChristophe
10.09. |+* Re: OptimisationBruno Desthuill
10.09. ||`* Re: OptimisationChristophe
10.09. || `* Re: OptimisationBruno Desthuill
10.09. ||  `* Re: OptimisationChristophe
10.09. ||   `* Re: OptimisationBruno Desthuill
12.09. ||    `* Re: OptimisationAlain BARTHE
12.09. ||     `* Re: OptimisationBruno Desthuill
12.09. ||      `* Re: OptimisationAlain BARTHE
12.09. ||       `* Re: OptimisationAlain BARTHE
13.09. ||        `- Re: Optimisationpil91
10.09. |`* Re: Optimisationpil91
10.09. | +- Re: OptimisationChristophe
10.09. | +* Re: Optimisationpil91
10.09. | |`- Re: OptimisationBruno Desthuill
10.09. | +* Re: OptimisationChristophe
10.09. | |`- Re: OptimisationBruno Desthuill
10.09. | `* Re: OptimisationBruno Desthuill
10.09. |  `* Re: OptimisationRakotomandimby
11.09. |   `- Re: OptimisationBruno Desthuill
10.09. `* Re: OptimisationBruno Desthuill
10.09.  `- Re: OptimisationMéta-MCI \(MVP\
Derniers articles
petites-annonces informatique autos mitsubishi jobs offres jobs demandes jobs d jobs soc politique soc religion rec sport automobile petites-annonces divers hierachie de merde comp usenet serveurs comp sys palm-pilot bio medecine misc engeulades

Derniers messages
petites-annonces informatique autos mitsubishi jobs offres jobs demandes jobs d jobs bio general rec boissons vins soc religion bio medecine soc politique soc alcoolisme misc actualite rec sport automobile petites-annonces divers

actualité

GFI LANguard NSS 9 fait son entrée
Silicon.fr - 27 nov 2008
Enfin, le langage Python permettra de créer des scripts de vérification personnalisés. Ce produit est disponible à un prix public démarrant à 224 euros HT, ...
GFI LANguard NSS v9, protection complète du réseau Categorynet.com (Communiqué de presse)
2 autres articles
source

actualité

La directrice d'un zoo allemand a été attaquée par l'un de ses ...
Waliboo - 26 nov 2008
On peut imaginer les images qui défilaient dans la tête de la victime en voyant la gueule du python grand ouvert, prêt à engloutir sa tête. ...
source


 




Copyright 2008 ©  - YouTheNet.com

| diabete de tipo 2 |