pb de tp !!! ( avec QueryPerformanceCounter )

pb de tp !!! ( avec QueryPerformanceCounter ) - C++ - Programmation

Marsh Posté le 10-08-2004 à 11:53:36    

:hello: Bonjour,  
 
Il m'arrive un truc trop bisard,
 
j'ai un code du genre:
 
********************
 
void fonct(){
 
 
    QueryPerformanceCounter(&Count111);  
 
 
 
    QueryPerformanceCounter(&Count11);  
 
    // traitement1
 
    QueryPerformanceCounter(&Count12);   // counter value
    printf("durée traitement1= %lf\n\n",(Count12.QuadPart -   Count11.QuadPart)/(double)frequence.QuadPart);
 
   QueryPerformanceCounter(&Count11);  
 
    // traitement2
 
    QueryPerformanceCounter(&Count12);   // counter value
    printf("durée traitement2= %lf\n\n",(Count12.QuadPart -   Count11.QuadPart)/(double)frequence.QuadPart);
 
    // .... etc .....
 
    QueryPerformanceCounter(&Count11);  
 
    // traitementi
 
    QueryPerformanceCounter(&Count12);   // counter value
    printf("durée traitementi= %lf\n\n",(Count12.QuadPart -            Count11.QuadPart)/(double)frequence.QuadPart);
 
 
     QueryPerformanceCounter(&Count122);   // counter value
    printf("durée total= %lf\n\n",(Count122.QuadPart -            Count111.QuadPart)/(double)frequence.QuadPart);
 
 
}
 
*********************************
 
Une fois sur 4 le tp total n'est pas egal à la somme des tp des traitements. Il est beaucoup plus long. Mes traitements sont de l'ordre de la ms alors que le totale atteint souvent des dizaines de ms.  
 
Je comprend pas pourtant le total devrait etre egal à la somme ?
 
Si qq un à une idée ?


Message édité par Cyber_Steph le 10-08-2004 à 14:38:02
Reply

Marsh Posté le 10-08-2004 à 11:53:36   

Reply

Marsh Posté le 10-08-2004 à 11:57:59    

non. tu crois qu'il se passe quoi entre 2 mesures ?  
 
sinon[:ban] pour titre à la con :o

Reply

Marsh Posté le 10-08-2004 à 12:10:40    

ben je comprend pas ce qui peut y avoir.
 
Windows peut bloquer le proc un moment mais je le verrais ds le detail des tp

Reply

Marsh Posté le 10-08-2004 à 16:50:38    

Citation :

printf("durée traitement1= %lf\n\n",(Count12.QuadPart -   Count11.QuadPart)/(double)frequence.QuadPart);


(LONGLONG - LONGLONG) / double, t'es sûr de filer ce que tu veux ? ("%lf" )


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 10-08-2004 à 17:16:36    

Pour moi ca doit renvoyer des double mais je vais essayer tu as peut etre raison

Reply

Marsh Posté le 10-08-2004 à 17:21:44    

bon en castant en double ca fait rien mais qqun peut me rappeler les %?  
 
Merci

Reply

Marsh Posté le 10-08-2004 à 17:36:12    

et en changant %lf par %f aucun changement


Message édité par Cyber_Steph le 10-08-2004 à 17:36:28
Reply

Marsh Posté le 10-08-2004 à 21:03:50    

Cyber_Steph a écrit :

:hello: Bonjour,  
 
Il m'arrive un truc trop bisard,
 


 
Bizarre, vous avez dit bizarre...?
Triple buse(ard) !


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 10-08-2004 à 22:03:46    

%I64 pour LONGLONG (pas standard il me semble)
http://www.codeproject.com/cpp/precisetimer.asp
utilise des double


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 10-08-2004 à 22:07:11    

mon cul :o
 
%lld %llu :o

Reply

Marsh Posté le 10-08-2004 à 22:07:11   

Reply

Marsh Posté le 11-08-2004 à 10:30:48    

Heu je comprend pas bien vos histoires de % . Je les connait pas du tout ceux la. lld ? llu?

Reply

Marsh Posté le 11-08-2004 à 10:35:14    

signed long long int
unsigned long long int

Reply

Marsh Posté le 11-08-2004 à 10:39:26    

En fait tu pourrait me rappeler l'histoire des long, je m'en sert jamais y a pas que des long int.

Reply

Marsh Posté le 11-08-2004 à 10:49:06    

En plus des int/double ca doit faire des double donc je devrait mettre %f ou %lf.

Reply

Marsh Posté le 11-08-2004 à 10:50:02    

je simplifie volontairement
 
classiquement sizeof(long) == sizeof(mot mémoire)
 
32bits sur un intel. sur nos cher x86-32 bits, on a aussi sizeof(long) == sizeof(int)
 
un long doit au moins avoir 32 bits (je simplifie)
 
classiquement sizeof(long long) == 2 * sizeof(mot mémoire), donc au moins 64 bits

Reply

Marsh Posté le 11-08-2004 à 10:52:49    

Je comprend pas a quoi ca sert,  
 
ta peut etre trop simplifié ;)

Reply

Marsh Posté le 11-08-2004 à 10:53:58    

est ce que j'essai %llf ca existe ?

Reply

Marsh Posté le 11-08-2004 à 10:57:50    

Cyber_Steph a écrit :

Je comprend pas a quoi ca sert,  
 
ta peut etre trop simplifié ;)

chaque type à son format pour printf/scanf

Reply

Marsh Posté le 11-08-2004 à 11:07:59    

oui je sais bien.
 
je comprend pas t histoires de sizeof en fait

Reply

Marsh Posté le 11-08-2004 à 11:15:59    

page 4 de ton manuel

Reply

Marsh Posté le 11-08-2004 à 11:21:22    

?????

Reply

Marsh Posté le 11-08-2004 à 14:30:29    

C bon j'ai trouvé:
 
Ca doit etre le debugger ou Visual Studio qui fout la merde.
 
Si je lance mon appli en dehors j'ai pas de pb ;)

Reply

Marsh Posté le 11-08-2004 à 15:41:39    

Cyber_Steph a écrit :


Ca doit etre le debugger ou Visual Studio qui fout la merde.

surement pas!

Cyber_Steph a écrit :


Si je lance mon appli en dehors j'ai pas de pb ;)

Vérifie que t'as pas oublié d'initialiser une variable

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed