Voici ma proposition :
#include<time.h>
int main()
{
double fin,debut,debut1,fin1;
debut = clock();
//Le traitement
...........
...........
//le traitement à exclure
debut1 = clock();
............
...............
fin1=clock();
//fin de traitement à exclure
//suite de premier traitement
...........
..............
fin=clock();
//fin de premier traitement
fprintf(stderr, "temps : %f\n", (double)(fin-debut) / (double)
CLOCKS_PER_SEC);
fprintf(stderr, "temps : %f\n", (double)(fin1-debut1) / (double)
CLOCKS_PER_SEC);
fprintf(stderr, "temps : %f\n", ((double)(fin-debut) - (double)(fin1-
debut1))/ (double) CLOCKS_PER_SEC);
return 0;
}
Est ce que c'est juste ?
Si oui alors est ce que on peut faire mieux ?
Si non alors que proposez vous ?
Merci.
Que proposez vous ?
> Si oui alors est ce que on peut faire mieux ?
QueryPerformanceFrequency()-QueryPerformanceCounter() pour plus de
précision.
Code Microsoft déjà donné...
Bonjour,
si on a :
clock_t now = clock();
/*traitement */
fprintf(stderr,"\nTemps CPU : %.2f secondes \n",(double) (clock() -
now) / CLOCKS_PER_SEC);
>QueryPerformanceFrequency()-QueryPerformanceCounter() pour plus de
> précision.
- Comment on utilise QueryPerformanceFrequency()-
QueryPerformanceCounter() dans le code au dessus de clock()?
- Avez vous un argument ou justification que la fonction clock() est
moins précise que QueryPerformance ?
- Quelle est la différence entre QueryPerformance et clock ?
Merci.
> - Comment on utilise QueryPerformanceFrequency()-
> QueryPerformanceCounter() dans le code au dessus de clock()?
Mais lis-tu des fois les réponses que l'on donne ?!
Voici mon code:
int main()
{
__int64 nFrequency, nStartTime=0, nStopTime=0, nTotalTime=0;
char sFormat[32];
char sTime[255];
double nTime;
SetThreadPriority(GetCurrentThread(),
THREAD_PRIORITY_TIME_CRITICAL);
QueryPerformanceFrequency((LARGE_INTEGER*)&nFrequency);
QueryPerformanceCounter((LARGE_INTEGER*)&nStartTime);
// debut traitemet
..................
.....................
// fin traitement
SetThreadPriority(GetCurrentThread(), THREAD_PRIORITY_NORMAL);
nTotalTime = nStopTime - nStartTime;
nTime = nTotalTime /(double)nFrequency;
sprintf(sFormat, "%%.%df", 10);
sprintf(sTime, sFormat, nTime);
fprintf(stdout, "Temps : %s secondes\n", sTime);
return 0;
}
Ce code m'affiche de temps négative par exemple: -18972.2222350522
secondes
C'est quoi le problème ?
Merci.
> Ce code m'affiche de temps négative par exemple: -18972.2222350522
> secondes
> C'est quoi le problème ?
Et ou est le :
QueryPerformanceCounter((LARGE_INTEGER*)&nStopTime);
?
oui çà marche.
J'ai remarqué que la fonction 'clock()' donne moins de temps que
'QueryPerformanceCounte' pour le même code.
Comment vous justifiez ceci et que vous proposez ?
> J'ai remarqué que la fonction 'clock()' donne moins de temps que
> 'QueryPerformanceCounte' pour le même code.
> Comment vous justifiez ceci et que vous proposez ?
Ca ne donne pas forcément moins de temps, mais c'est moins précis
Si je teste avec Sleep(2000); pour faire une pause de 2 secondes, ça
donne par exemple sur mon poste 2.00000 pour clock() et 1.9984003554
pour QueryPerformanceCounter()