Hello
Depuis quelques jours, je teste les modules Benchmark et Devel::Nytprof.
Ils sont incontournables et faciles à employer.
Benchmark vous permettra principalement de comparer 2 ou plusieurs routines (avec cmpthese) faisant la même chose (codés avec vos petits doigts ^^), en donnant des statistiques du code le plus rapide.
Devel::Nytprof lance le debugger Perl et calcule le temps d'exécution de chaque instruction, chaque routine, chaque module.
Les résultats sont visualisables en html avec des codes de couleurs (rouge/vert...).
Pour profiler par exemple le script foo.pl:
Rem: un fichier nytprof.out sera créé
ensuite en terminal, pour générer les fichiers html à partir du fichier nytprof.out:
#répertoire créé contenant les fichiers générés:
et ouvrez index.html avec un browser ou via
(enjoy)
pensez à renommer le répertoire nytprof pour comparer vos changements et pensez également à profiler vos modules.
Rem: j'ai gagné 300 ms en accès sur 1.5 sec d'un CGI => 1.2 cgi
(c'est un cgi avec accès mysql (sans index), ldap, graphe mensuel, json et jquery, je peux encore gagner du temps...)
Prochaine étape possible: utiliser du caching.
Ex: Cache::FastMmap
Il y en a une floppée comme sqlite, tie, mmap, memoize, CHI... à vous de trouver votre bonheur en utilisant la mémoire, un fichier local ou une db locale...
Ou alors passer au fastcgi, psgi...
Rem: j'ai essayé CGI::Simple (moins lourd que CGI) mais l'ai trouvé plus lent sur un serveur IIS !
1 |
0 |