[gull] Cours python
Daniel Cordey
dc at mjt.ch
Wed Sep 14 17:16:56 CEST 2005
Petit update a propos du cours d'hier soir :
+ SWIG
Le probleme que j'ai mentionne hier soir est resolu. Il s'agissait d'un
memset(pointer, 0, sizeof(mystruct)) d'une structure a laquelle je n'aurais
jamais du l'appliquer. Cette appel etait une adjonction au code d'origine,
engendre par une difference dans la maniere dont les "zones" (data, text)
sont traitees par Lunix... different d'HP-UX; initialisation des
"constantes" (static). Donc, avis a ceux qui portent une librairie C d'un *UX
vers Linux. Il y a des differences de compilateurs ainsi que du 'loader'. (je
n'entre pas dans le details de l'usage du memset() plutot que des options du
linker... hors-sujet-trop-long)
Les niveaux d'optimisation du compilateur gcc n'est donc pas en cause et le
code est (tres) bien optimise (29 %... pas mal !). Sachant que ce code est
tres fortement oriente pointeurs... Cela en dit long sur la qualite de
l'optimiseur (-03).
+ Psyco
Bonne nouvelle ! Ca fonctionne tres bien (a condition que les fonctions ne
soient pas des monstres). J'obtiens des gains compris entre 25 et 35 %...
sans avoir a toucher quoi que se soit. C'est donc un module que je recommande
car il apporte un gain de performance apreciable sans aucun effort ! Il
suffit d'ecrire :
import psyco
psyco.full()
Et voila... N'oubliez pas toutefois que psyco ne peut optimiser que les
fonctions. Il n'a donc pas d'effet sur un programme. Rien ne vosu empeche
donc de mettre tout votre code dans une fonction...
Donc, ca baigne... :-)
dc
More information about the gull
mailing list