Accueil > Forum > > > > Des boucles de plus en plus lentes... Que faire?
Des boucles de plus en plus lentes... Que faire?
dimanche 9 septembre 2007 à 18:58:23 |
Des boucles de plus en plus lentes... Que faire?

Pingouin57
|
Salut à tous,
Voici mon petit problème. Je développe actuellement un petit logiciel en delphi dans lequel j'inclus une boucle se répétant beaucoup de fois (l'execution peut durer quelques minutes), j'utilise la commande Refesh() et Redraw() dans la boucle pour actualiser l'affichage de la fenêtre (j'en ai d'ailleurs profité pour y mettre une progressbar qui indique l'avancement du bordel). Aucun soucis jusque là, cependant, lorsque notre petit while commence à tourner, on peut constater que l'execution est de plus en plus lente (les calculs effectués dans chaque boucle sont généralement les mêmes à quelques choses près), de plus, si le refresh fonctionne au début, au bout de quelques secondes si on a le malheur de cliquer quelque part dans le programme celui-ci ne répond plus et continue à tourner. Il faut attendre la fin de la boucle pour que le programme réponde à nouveau. Grrr... 
Je ne sais pas si il existe des techniques permettant d'éviter ce genre d'ennuis, que j'ai déja rencontré plusieurs fois auparavent sans parvenir à trouver de solution...
Merci à tous, Julien
|
|
dimanche 9 septembre 2007 à 19:22:52 |
Re : Des boucles de plus en plus lentes... Que faire?

cantador
|
fuites mémoires.. Et j'ai mis des 's', on ne sait jamais.. Et puis mettre un refresh dans une boucle c'est osé.. cantador 
|
|
dimanche 9 septembre 2007 à 19:24:55 |
Re : Des boucles de plus en plus lentes... Que faire?

florenth
|
Réponse acceptée !
Salut ! Il y a un seul remède: le thread. Mais ça rentre dans un autre domaine de prog', assez compliquà à mettre en oeuvre et à comprendre pour la première fois. En tapant "thread" dnas le moteur de recherche, tu devrais trouver quelques pistes. Et si tu as d'autres problèmes, n'hésites pas. ++ Flo Ressources Delphi, sources, tutoriaux, actu, ...: www.mx-dev.net [ Lien ]
|
|
dimanche 9 septembre 2007 à 20:23:18 |
Re : Des boucles de plus en plus lentes... Que faire?
|
dimanche 9 septembre 2007 à 20:50:27 |
Re : Des boucles de plus en plus lentes... Que faire?

Pingouin57
|
Merci à vous pour ces infos, je vais tester l'utilisation de processmessages je vous tiens au courant
|
|
lundi 10 septembre 2007 à 18:35:11 |
Re : Des boucles de plus en plus lentes... Que faire?

florenth
|
Réponse acceptée !
Eh eh f0xi: le remplaçant des "grandes" boucles qui prennent trop de temps, c'est bien sur les threads !!! ProcessMessages, ça va deux minutes. Mais c'est 15 fois moins souple et ça bouffe les ressources processeur pour rien (donc ça ralentit). Et puis, c'est plus compliqué qu'un thread bien mené. Et en plus, ça résout pas 100% des problèmes qu'on pourrait avoir. Ressources Delphi, sources, tutoriaux, actu, ...: www.mx-dev.net [ Lien ]
|
|
lundi 10 septembre 2007 à 19:12:08 |
Re : Des boucles de plus en plus lentes... Que faire?

Pingouin57
|
Exact, j'ai en effet opté pour la solution du thread, cela parait être la meilleure solution dans ce genre de cas ^^
|
|
Cette discussion est classée dans : boucle, execution, tourner, boucles, lentes
Répondre à ce message
Sujets en rapport avec ce message
Boucles entrainant la non réponse d'un programme [ par laurentl2000 ]
Bonjour, Lorsqu'on exécute une boucle for, while ou repeat, toute les feuilles de l'application concernée sont "bloquées" et ne répondent pas pendant
comment faire pour metre des shape en boucle et ke leur valeur s'incrémente avec le compteur ? merci ;)a+ [ par Manouai ]
Aime ton prochain comme toi même ! :D :) 8D[Code]procedure TForm1.Timer2Timer(Sender: TObject);vari,j:integer;beginfor i:=1 to n dofor j:=1 to n dobeg
Problème d'execution [ par StoneInFocus ]
Salut, voilà je debutes sous Delphi 6 et j'ai créer un prog qui est en fait une succession de form au debut cela marchait trés bien mais dès que j'ai
creation de composant a l'execution [ par canabice01 ]
salut tout le monde voilàj'ai arriver a créer un seul composant : private { Déclarations privées } MonButton:TButton; implementation procedure
label dynamique [ par insiarantanplan ]
bonjour, je souhaite afficher la progression d'une boucle dans un TLabel, et dans une TProgressBar, or durant la boucle, il je ne vois augmenter que l
probelme de boucle [ par thone08 ]
bonjour quel est le probleme ? car quand je compile il me fait que pour la premiere lettre et la derniere ?meric d'avanceprocedure TForm1.Button2Click
Thread sans form [ par PatSW ]
J'aimerais savoir comment faire une appli qui executre une boucle en tread et ui ne se ferme pas.ex:program Project1;uses Classes,Windows;var P: TPoi
TQuery et thread [ par Fandril ]
J'ai essaye de mettre l'execution de requete SQL dans un threadn il est indispensable que l'execution des requetes ne ralentisse pas le programmme pri
peut-on sauter une itération dans une boucle [ par olator ]
Est il possible en delphi dans sauter une itération dans une boucle for dans certain condition.exempleFor i:= 1 to 7 do(si variable x>6 passe a l'itér
Livres en rapport
|
Derniers Blogs
[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2ZUNE : NOUVELLE VERSION DU ZUNE SOFTWARE - V 4.2 par ROMELARD Fabrice
Avec la dernière génération du lecteur MP3 de Microsoft, le ZUNE HD, Microsoft a publié une nouvelle version du logiciel pour PC. Ainsi, je me suis décidé à installer celle-ci sur mon Tablet PC ACER, comme toujours le logiciel est donc tél...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
RE : DELPHIRE : DELPHI par overtaker
Cliquez pour lire la suite par overtaker RE : DELPHIRE : DELPHI par rt15
Cliquez pour lire la suite par rt15 DELPHIDELPHI par overtaker
Cliquez pour lire la suite par overtaker
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|