промяна часовника прецизност

D

davyzhu

Guest
Здравейте всички,

Използвам часовник () за измерване на времето на разходите в моята програма.
Но t_clock винаги да бъде умножете по 10, например 10, 20, 30, 40, ...
И аз искам да се точността на 1, като 11, 12, 13, 14 ...
Как мога да променя точност t_clock's?

Код списъка по-долу:
//-----------------
# включват <cstdio>
# включват <fstream.h>
# включват <ctime>

нищожен Main () (
Int X;
clock_t t_click, t_start;

t_start = часовник ();
за (X = 0; X <60; X ) (
printf ( "% г \ N", X);
)

t_click = часовник () - t_start;
printf ( "времето, изтекло% D \ N", t_click);

)
//-------------------
BTW, аз използвам VC6.0.Околната среда е P3 600MHz и WinXP.

Всички предложения ще бъдат оценени!

С най-добри пожелания,
Дейви

 
Вашият пример работи почти веднага на моята система, и дава стойност 0.

Вие виждате решаването на вашата система многозадачност таймер, който по подразбиране някъде около 5 или 10 или 15 милисекунди.Можете да увеличите своята резолюция 1ms като се обадите на мултимедийни функции timeBeginPeriod () и timeEndPeriod ().

Вместо да използвате часовник (), опитайте QueryPerformanceCounter () и QueryPerformanceFrequency ().Тя е много по-висока разделителна способност.
Код:

# включват <windows.h>

# включват <stdio.h>Int основни (Void)

(

Int X;

LARGE_INTEGER t_start, t_stop, t_freq;

двойно t_click;QueryPerformanceFrequency (& t_freq);

QueryPerformanceCounter (& t_start);

за (X = 0; X <60; X )

printf ( "% г \ N", X);

QueryPerformanceCounter (& t_stop);t_click = (t_stop.QuadPart - t_start.QuadPart) / (двойно) t_freq.QuadPart;

printf ( "времето, изтекло% е \ N", t_click);

връщане 0;

)
 

Welcome to EDABoard.com

Sponsor

Back
Top