-
chargement module
Bonjour,
J'ai un leger souci de performance (temps) pour le chargement de mes propres modules. Si je charge des modules du style le module CGI ou autre avec use, le temps est ridicule, par contre si je charge mes propres modules, n importe lequel, mon navigateur met un certains temps à afficher ma page. Je suppose que c'est le temps d'interpreter le code mais pourquoi une telle difference avec les autres modules? Y aurait il un moyen d'accelerer ce chargement?
Merci
-
CGI utilise plein d'astuces pour éviter de tout compiler immédiatement.
Cela étant, j'ai du mal à croire que c'est le chargement proprement dit. J'aurai plus tendance à soupçonner un mauvais algorithme. Tu peux nous en dire plus sur ton module ? L'as-tu fait passer dans un profiler ? As-tu fait des benchmarks ?
N
-
je n'ai pas fait de benchmark.
quand à mon module c'est en fait une classe appelée Term qui initialise des attributs a partir de 2 requetes sql. Ensuite je n'ai que des accesseurs et des modificateurs. Le truc c que je fais afficher un message juste apres les use et lorsque je lance l'interpretation avec perl Term.pm il me met un certain temps pour afficher mon message. Ce temps est bcp + court si je ne charge pas mes modules.
Voila
-
C'est tes requêtes SQL qui prennent du temps. Tout est donc normal.
Si tu as besoin de reduire le temps, il faut investiguer des solutions qui mettent en cache les résultats des requêtes : genre tu génère un fichier avec les données toutes les heures et tu lis ce fichier au lieu de taper dans la base chaque fois.
Ou si les données ne sont pas toujours nécessaire selon l'utilisation qui est faite du module, il faut que tu t'arranges à executer les requêtes le plus tard possible (la paresse est Bien).
N