Lenteur d'exécution

jnmchl Messages postés 63 Date d'inscription dimanche 16 octobre 2005 Statut Membre Dernière intervention 13 novembre 2009 - 23 févr. 2008 à 21:13
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 - 27 févr. 2008 à 10:58
Je fais une appli destinée à piloter des réseaux de fluides dans une usine.
L'interface principale est un scrollbox comportant un graphique qui dessine le synoptique de chaque tuyau.
Ce graphique est interactif : les couleurs que doivent prendre les différents segments donne une information sur le fluide dans le tuyau donné, et en cliquant dessus l'utilisateur peut commander des vannes et des pompes.
J'ai donc créé un composant personalisé TSegment qui gère tout ce dont j'ai besoin : 3 propriétés couleurs, des propriétés d'indice etc ...
et les évènements on click, onclickdroit ...
L'aspect graphique correspond au cahier de charge.
Le gros de l'application fonctionne, mais j'ai un problème de taille : le logiciel ne tourne pas en permanence sur les micros des utilisateurs et au démarrage de l'application elle lit un fichier de paramètres (style ini) qui contient tout le graphique : les coordonnées de chaque segment entres autres. Il y a pour l'instant près de 7000 segments existants et le temps d'initialisation dure près d'une minute ... ce qui est beaucoup trop long.
Vous pouvez chargez une partie du code où je fais une boucle qui génère 520 segments ... voyez le temps que ça met !
http://mapage.noos.fr/ferroweb/Project1.zip

En étudiant le phénomène (chronomètrage des étapes) :
 - en mettant le scrollbox1.visible à false ça va beaucoup plus vite, mais ça reste trop long
 - le ralentissement est de plus en plus important vers la fin quand il y a beaucoup de segments
 - la part create et plus longue que la part formatage (procédure formate : calculs) et Paint (environ 3/4 - 1/4)


Que peut-on optimiser ?
Est-ce lié à un problème de mémoire ? de ressources ?


Merci de votre aide.

Jean-Michel

28 réponses

jnmchl Messages postés 63 Date d'inscription dimanche 16 octobre 2005 Statut Membre Dernière intervention 13 novembre 2009 1
26 févr. 2008 à 18:35
Boujour,
 <<I  lève son doigt ... mais sans comprendre tous les tenants et aboutissants.
Flo, je n'ai nullement l'intention de recopier ton code, l'intérêt c'est de voir ta manière d'aborder la question ...
En fait si je fais le tour de la question pour gagner du temps (et à priori c'est pas sûr) il faudrait passer par un
dessin (à redessiner à chaque changement de couleur) et un gestionnaire de pointage capable de détecter une zone polygonale "complexe" ...
là je sens que ça va être dur (pour moi). Tout ça parce que la forme de mes composants n'est pas un simple rectangle horizontal et vertical !

Pour la forêt ... je ne comprends pas tout mais bon, j'imagine TArbre doit bien avoir des propriétés style Branche et aussi FeuilleColor etc...
S'il y a 7000 arbres dans la forêt ... toutes les feuilles des tous les arbres peuvent bien avoir des couleurs différentes ? (c'est si beau en automne).
Ce qu'il faudrait m'expliquer c'est l'intérêt ou la différence entre le 7000 arbres et La forêt ...

Question est-ce raisonnable d'avoir 7000 composants (en fait 7000 arbres dans UNE forêt ou 7000 tuyaux dans UNE usine) ?
Et mes 7000 tuyaux c'est bien le même composant (TSegment) mais ses propriétés sont différentes, comme les couleurs des feuilles des arbres de la forêt.  

Jean-Michel
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
26 févr. 2008 à 19:34
@delphiprog
C'est ok pour le DP..
@bientôt

cantador
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
26 févr. 2008 à 20:07
Si j'me goure pas, ça fait 23 doigts...
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
26 févr. 2008 à 21:11
...et sans compter sur les doigts...
en attendant ceux de fée de delphiprog...

cantador
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
26 févr. 2008 à 21:36
'faut bien des doigts de fée pour écrire un tuto !

Je sais ce que c'est : il n'y a rien de plus chiant comme excercice.
On ne sait jamais si on en dit trop, pas assez, si c'est trop compliqué pour les débutants, trop simple pour les autres...
Et puis, ce n'est pas comme un code où tu apprends en l'écrivant. Un tuto, tu expliques ce que tu sais déjà. C'est ennuyant à mourir!

Ah!  Il a bien du mérite Delféeprog ! 
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
26 févr. 2008 à 21:47
...Et pis, quand tu l'as posté, y'en a toujours un pour te dire que t'as oublié le plus important..! 
0
Caribensila Messages postés 2527 Date d'inscription jeudi 15 janvier 2004 Statut Membre Dernière intervention 16 octobre 2019 18
26 févr. 2008 à 21:57
...Par contre, ça t'oblige à mettre tes idées en place et à tout vérifier.

J'ai l'esprit d'escalier, ce soir. Delphiprog doit avoir raison : j'suis fatigué.
 
0
cs_cantador Messages postés 4720 Date d'inscription dimanche 26 février 2006 Statut Modérateur Dernière intervention 31 juillet 2021 13
27 févr. 2008 à 10:58
@caribensila:
 Bravo pour les commentaires.
 C'est tellement vrai !

Mais le don de soi, çà n'a pas de prix..

cantador
0
Rejoignez-nous