03 juillet 2006

C'est lent ... mais pourquoi ?

Il arrive qu'un code mis au point ne donne pas son résultat assez rapidement. Pire, il peut arriver qu'un code opérationnel depuis longtemps ralentisse soudainement. Ce dernier cas m'est encore arrivé la semaine dernière, une fenêtre ayant un chargement de données en arrière plan (thread) c'est vue ralentie soudainement, plus d'une minute de chargement au lieu des quelques secondes habituelles.

Une exécution de la fenêtre avec l'analyseur de perfor- mances à immédiate- ment permis de localiser le ralentis- sement. Un appel de la fonction "INILit" prenait à lui seul 46 secondes ! Farce de l'administrateur réseau qui avait supprimé une ressource partagée par erreur.

Réflexe à prendre donc, ne pas omettre un passage par l'analyseur de performances dès que la vitesse n'est pas au rendez-vous !

2 commentaires:

Anonyme a dit…

Bonjour,

Suite à votre postit sur l'analyseur de performance, j'ai analysé certains traitements lourds dans mon application.

Par habitude, lorsque je dois faire des calculs (par exemple statistiques) sur des informations portant sur plusieurs tables de ma base j'alimente une table mémoire et à l'aide de la fonction TableCherche, je viens de m’apercevoir que si le nombre d’éléments de la table est important (plusieurs milliers) le temps d’exécution de TableCherche est très long.

J’ai trouvé une solution plus rapide en utilisant les tableaux dynamiques (et donc la fonction TableauCherche) ce qui m’as permis de gagner sur mon traitement environ 70% de rapidité.

Merci encore pour vos infos.

Frédéri LACROIX
(et non … a priori nous ne sommes pas cousins)

Elian Lacroix a dit…

Oui, la table mémoire reste un objet graphique au sens Windows, et va donc ajouter des contraintes en terme de performances (même si elle est invisible durant votre traitement). Et vous avez tout à fait raison les tableaux (fonctions Tableau* du W-Langage) offrent une très bonne alternative puisqu'ils ne se consacrent qu'au stockage de l'information et non à son affichage.

En tout cas je suis ravi d'avoir pu vous orienter, l'analyseur de performances permet réellement de bien s'y retrouver notamment dans des traitements anciens à faire évoluer.