|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Inscription : mars 2006 Messages : 2 619 ![]() |
Bonjours
A la suite d'un post sur le Forun Delphi, et les reponses faites par ShaiLeTroll, j'ai teste QueryPerformance, apres recherche sur le Forum C++Builder je n'ai rien trouve, je poste pour l'exemple un code qui est je pense fonctionnel, j'ai un doute sur les testes dans la derniere partie du programme. Code :
__________________
-- Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
|
||
|
|
00
|
|
|
#2 | ||
|
Membre habitué
![]() Inscription : octobre 2002 Messages : 125 ![]() |
Oui effectivement, tu t'es un peu embrouillé les pinceaux, voici ce que j'ai écrit, et comme ça m'intéresse aussi, j'ai comparé les performances avec GetTickCount() pour voir...
Code :
|
||
|
|
00
|
|
|
#3 | |||||
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 9 172 ![]() |
Blondelle, j'ai évoqué QueryPerformance pour mesurer le temps des fonctions que tu utilisais pour comprendre la contre-performance de ton code
ce n'était pas pour faire une boucle de patience mais pour voir là ou ton code perdait du temps pour arriver à 12 minutes ! Citation:
Code pascal :
J'ai ces fonctions en C++Builder pour mesurer en ms ! les versions similaires en Delphi Code :
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié ! |
|||||
|
|
00
|
|
|
#4 | ||||||
|
Membre habitué
![]() Inscription : octobre 2002 Messages : 125 ![]() |
Salut,
Comme j'aime bien encapsuler, j'ai fait une petite classe pour mettre tout ça, c'est la classe TChronometre qui utilise le compteur haute performance s'il est disponible sinon il utilise le bon vieux GetTickCount() en ms. voilà ce que ça donne pour l'exemple précédent : Code :
Code :
Code :
|
||||||
|
|
10
|
|
|
#5 |
![]() ![]() Inscription : mars 2006 Messages : 2 619 ![]() |
Merci Freeze et ShaiLeTroll pour vos reponses
ShaiLeTroll j'avais bien compris pour tes explications, mais a la suite de mes testes je m'etais rendu compte que le probleme venait des temporisations du soft. Freeze il me semblait bien qu'il y avait un probleme dans le code, mais je ne voyais pas ou, elle est super ta classe. Pour info je numerise une fraiseuse d'etabli j'ai recupere un programme de commande avec le source, celui-ci ete prevu pour fonctionner avec Windows 95-98, pour XP je passe par DLport, bien sur au debut cela ne fonctionnait pas , apres avoir utilise des Sleep en temporisation le temps de fonctionnement etait trop long, j'ai donc tente des boucles de temporisation, mais celles ci doivent etre variable, pour avoir un fonctionnement correcte il me falait savoir le temps des temporisations. Comme QueryPerformance ne faisait l'objet d'aucun Post sur ce Forum j'ai poste dans le but de rendre service a d'autre qui connaissent des problemes similaires
__________________
-- Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
|
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 9 172 ![]() |
Citation:
![]() Citation:
En Delphi, je me suis fait WaitSleeping, conçu pour attendre sans saturer le CPU le remplissage aynchrone d'un TWebBrowser Tu devrais te faire une fonction équivalente genre MicroSleep en utilisant TChronometre + Sleep(0)
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié ! |
||
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : mars 2006 Messages : 2 619 ![]() |
Merci ShaiLeTroll
Je fais les temporisations en tenant compte de tes sugestions et remarques, de plus avant essais j'ai une evaluation des temps d'attente. Freeze ta classe ainsi que ton code previsualisation impression devraient etre proposees en sources sur le Forum, desole de te demander du boulot supplementaire
__________________
-- Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
|
|
|
00
|
|
|
#8 | |||
|
Membre habitué
![]() Inscription : octobre 2002 Messages : 125 ![]() |
Citation:
Code :
|
|||
|
|
00
|
|
|
#9 |
![]() ![]() Inscription : mars 2006 Messages : 2 619 ![]() |
Merci Freeze
J'ai du boulot pour demain pour integrer le code aux temporisations de mon programme
__________________
-- Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
|
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 9 172 ![]() |
@Freeze, en fait le but était d'attendre moins de 1ms, d'où le QueryPerformance pour mesurer des temps en µs (voire ns)
Code :
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié ! |
||
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : août 2010 Messages : 74 ![]() |
Juste pour info et en espérant ne pas être hors sujet, il existe dans Delphi / C++ Builder une classe TStopwatch dans l'unité Diagnostics.
http://docwiki.embarcadero.com/Libra...ics.TStopwatch |
|
|
10
|
|
|
#12 |
|
Expert Confirmé Sénior
![]() Développeur C++\Delphi Inscription : juillet 2006 Messages : 9 172 ![]() |
![]() Et en plus maintenant c'est encaspulé dans une classe fournie par Embarcadero, depuis mon passe de D7 vers BCB2007 puis XE2 et aujourd'hui même XE3, je découvre au moins une classe (ou record évolué) de ce genre par semaine ! Merci Pocoyote En ce moment même, je suis en train de supprimer mes attentes actives à base de Sleep au profit de TEvent, c'est bien plus élégant !
__________________
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y ! Attention Troll Méchant ! ![]() "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer ! L'ignorance n'excuse pas la médiocrité ! L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde) Il faut avoir le courage de se tromper et d'apprendre de ses erreurs Halte à la ségrégation des Cinémas, VO sur Paris, VF en Banlieue, Abonnement résilié ! |
|
|
00
|
|
|
#13 |
![]() ![]() Inscription : mars 2006 Messages : 2 619 ![]() |
Le programme est operationnel je marque le post resolu
__________________
-- Plutot que d'essayer de réinventer la roue, apprenons à nous en servir.
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com