|
Optimisation avec WinDev 8 et l'optimiseur |
Started by csegonds, Sep., 08 2004 7:04 PM - 2 replies |
| |
| | | |
|
| |
Posted on September, 08 2004 - 7:04 PM |
Je vous fait cette petite new afin de partager mon expérience : l'optimiseur de WinDev 8 aide fortement à trouver ou ca coince dans le code.
J'ai pu en utilisant l'optimiseur de WD8, réduire drastiquement la vitesse du code que je trouvais lent. Au final, mon traitement est passé de 6,30 s à 2,15s. Ce qui est loin d'être négligeable sur un AMD XP 2800+. Grâce a cette fonction 'OPTIMISEUR', j'ai pu voir que j'effectuais à tort des fonctions VAL() sur des entiers..., et d'autres choses (copie de chaine inutile). Par contre, j'en suis arrivé à un point ou je ne pouvais plus rien faire. J'utilise la fonction Dligne pour tracer des polygones à partir d'une base de données. Les coordonnées des points sont stockées et traduites à la volée en fonction du niveau de zoom. J'appelais environ 30 000 fois la fonction dligne pour tracer mes polygones (environ 1s de traitement). La fonction Polygone de WinDev n'est pas dynamique, on ne peut pas lui passer un tableau de point. J'ai donc utilisé l'API de tracé de polygone(Polyline). L'appel de l'Api pour tracer environ 5000 polygones prend 118 ms, de plus cela m'a permis d'alléger mon code (plus besoin de mémoriser le point précédent pour tracer des segments, réduction du nombre d'appel à la fonction de tracé). |
| |
| |
| | | |
|
| | |
| |
Posted on September, 08 2004 - 7:32 PM |
Merci pour l'info, je connaissez mais je n'avais jamais testé. Je vais le tester.
Antoine
Csegonds wrote:
Je vous fait cette petite new afin de partager mon expérience : l'optimiseur de WinDev 8 aide fortement à trouver ou ca coince dans le code.
J'ai pu en utilisant l'optimiseur de WD8, réduire drastiquement la vitesse du code que je trouvais lent. Au final, mon traitement est passé de 6,30 s à 2,15s. Ce qui est loin d'être négligeable sur un AMD XP 2800+.
Grâce a cette fonction 'OPTIMISEUR', j'ai pu voir que j'effectuais à tort des fonctions VAL() sur des entiers..., et d'autres choses (copie de chaine inutile). Par contre, j'en suis arrivé à un point ou je ne pouvais plus rien faire. J'utilise la fonction Dligne pour tracer des polygones à partir d'une base de données. Les coordonnées des points sont stockées et traduites à la volée en fonction du niveau de zoom. J'appelais environ 30 000 fois la fonction dligne pour tracer mes polygones (environ 1s de traitement). La fonction Polygone de WinDev n'est pas dynamique, on ne peut pas lui passer un tableau de point. J'ai donc utilisé l'API de tracé de polygone(Polyline). L'appel de l'Api pour tracer environ 5000 polygones prend 118 ms, de plus cela m'a permis d'alléger mon code (plus besoin de mémoriser le point précédent pour tracer des segments, réduction du nombre d'appel à la fonction de tracé). |
| |
| |
| | | |
|
| | |
| |
Posted on September, 08 2004 - 11:15 PM |
"Csegonds" <csegonds@free.fr> écrivait news:413f1f60@news.pcsoft.fr:
> Grƒce a cette fonction 'OPTIMISEUR',
Salut,
c'est pas plutot l'analyse de performance, et les ordre AnalyseurDébut() et AnalyseurFin() ?
Car personnellement j'utilise régulièrement ces ordres et cela me permet de localiser les lacunes de mon code.
-- En esperant t'avoir aidé. ted |
| |
| |
| | | |
|
| | | | |
| | |
|