[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