OVH Cloud OVH Cloud

Estimation précise temps exécution d'une fonction

15 réponses
Avatar
Pierre Moureaux
Bonjour,

Comment pourrais-je m'y prendre pour estimer le temps (en ms) nécessaire
pour l'exécution d'une certaine fonction ? Connaissez-vous une API qui donne
avec précision le temps écoulé depuis la mise en route du pc ou quelque
chose dans le genre.

Je préfère utiliser une API plutôt qu'une fonction VB style timer .



Merci à vous,

Pierre.

10 réponses

1 2
Avatar
Remi Thomas
Pierre Moureaux wrote:
Bonjour,

Comment pourrais-je m'y prendre pour estimer le temps (en ms)
nécessaire pour l'exécution d'une certaine fonction ? Connaissez-vous
une API qui donne avec précision le temps écoulé depuis la mise en
route du pc ou quelque chose dans le genre.

Je préfère utiliser une API plutôt qu'une fonction VB style timer .



Merci à vous,

Pierre.



Les timers les plus précis de Windows sont les
QueryPerformanceCounter

Rémi

--
Rémi Thomas - MVP Visual Studio .NET
Développeur Windows indépendant
http://www.xtware.com/cv
Avatar
Louis
Fonction qui retourne les ticks de l'horloge du PC en milisecondes :

Public Declare Function GetTickCount Lib "kernel32" () As Long
Avatar
Pierre Moureaux
Ok, merci, vais aller voir cela.
Bonne journée.

"Louis" a écrit dans le message de
news:3f979830$0$27581$
Fonction qui retourne les ticks de l'horloge du PC en milisecondes :

Public Declare Function GetTickCount Lib "kernel32" () As Long




Avatar
Spoofix
"Pierre Moureaux" a écrit dans le message de
news:bn83kj$
Bonjour,

Comment pourrais-je m'y prendre pour estimer le temps (en ms) nécessaire
pour l'exécution d'une certaine fonction ? Connaissez-vous une API qui


donne
avec précision le temps écoulé depuis la mise en route du pc ou quelque
chose dans le genre.



Comme l'a dit Remi, il y a les Performance timers.
Cependant, pour ce que tu veux faire, il y a les softs de profiling (il y en
a meme un avec VC++, meme s'il n'est pas tres bon....), dont le role est de
te faire un compte rendu du temps d'execution de tes fonctions. Voir
Boundchecker et True Time...

Clément.
Avatar
Christian ASTOR
Pierre Moureaux wrote:

Comment pourrais-je m'y prendre pour estimer le temps (en ms) nécessaire
pour l'exécution d'une certaine fonction ?



Fin de l'article :
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnvc60/html/optcode.asp
Avatar
Dominique Vaufreydaz
Bonjour,

Pierre Moureaux wrote:
Ok, merci, vais aller voir cela.
Bonne journée.



GetTickCount n'est pas precis du tout. La precision de ce compteur
est dependant de l'OS. De memoire, sur NT c'est ~10ms... Voir les
reponses des autres pour de meilleurs performance.

Doms.
--
Impose ta chance, serre ton bonheur et va vers ton risque.
A te regarder, ils s'habitueront.
René Char, Les Matinaux.
----
http://www-prima.inrialpes.fr/Vaufreydaz/
http://slmg.imag.fr/
http://slmg-index.imag.fr/
http://TitchKaRa.free.fr/
http://logiciels.ntfaqfr.com/
Avatar
Louis
"Dominique Vaufreydaz" a écrit :
Bonjour,

Pierre Moureaux wrote:
> Ok, merci, vais aller voir cela.
> Bonne journée.

GetTickCount n'est pas precis du tout. La precision de ce compteur
est dependant de l'OS. De memoire, sur NT c'est ~10ms... Voir les
reponses des autres pour de meilleurs performance.



Ca je ne savais pas. Mais pour évaluer "à la louche" le temps d'exécution
d'une routine ça m'a largement suffi jusqu'à maintenant.
D'autant plus que pour avoir des temps suffisamment longs j'exécute parfois
la routine à mesurer plusieurs fois dans une boucle.
Avatar
Dominique Vaufreydaz
Bonjour,

Ca je ne savais pas. Mais pour évaluer "à la louche" le temps d'exécution
d'une routine ça m'a largement suffi jusqu'à maintenant.
D'autant plus que pour avoir des temps suffisamment longs j'exécute parfois
la routine à mesurer plusieurs fois dans une boucle.



Oui, quand cela est possible, en effet. Reste que la precision de
GetTickCount est toute relative. Et souvent des valeurs erronées sont
trouves car la valeur retournees n'a pas ete mise a jour.

Je voulais juste signaler qu'il fallait faire attention.

Doms.
--
Impose ta chance, serre ton bonheur et va vers ton risque.
A te regarder, ils s'habitueront.
René Char, Les Matinaux.
----
http://www-prima.inrialpes.fr/Vaufreydaz/
http://slmg.imag.fr/
http://slmg-index.imag.fr/
http://TitchKaRa.free.fr/
http://logiciels.ntfaqfr.com/
Avatar
Jean Naimard
TimGetTime est pas mal pour faire ca

"Pierre Moureaux" a écrit dans le message de
news: bn83kj$
Bonjour,

Comment pourrais-je m'y prendre pour estimer le temps (en ms) nécessaire
pour l'exécution d'une certaine fonction ? Connaissez-vous une API qui


donne
avec précision le temps écoulé depuis la mise en route du pc ou quelque
chose dans le genre.

Je préfère utiliser une API plutôt qu'une fonction VB style timer .



Merci à vous,

Pierre.




Avatar
Vincent Burel
"Dominique Vaufreydaz" wrote in message
news:bn8s0n$h44$
Bonjour,

> Ca je ne savais pas. Mais pour évaluer "à la louche" le temps


d'exécution
> d'une routine ça m'a largement suffi jusqu'à maintenant.
> D'autant plus que pour avoir des temps suffisamment longs j'exécute


parfois
> la routine à mesurer plusieurs fois dans une boucle.

Oui, quand cela est possible, en effet. Reste que la precision de
GetTickCount est toute relative. Et souvent des valeurs erronées sont
trouves car la valeur retournees n'a pas ete mise a jour.

Je voulais juste signaler qu'il fallait faire attention.



je confirme, GetTickCount n'est pas du tout précise.

VB
1 2