程序计时问题
想用C语言编一段代码对另一段代码进行计时,怎么实现?最好是C语言,越精确越好!
习惯了在这个论坛发帖,所以也将这个问题在这里发吧。
[解决办法]
::GetTickCount
[解决办法]
你要什么精度??包含time.h
time_t tmOrg, tmNow;
time(&tmOrg);
Sleep(5000);
time(&tmNow);
ShowMessage(tmNow - tmOrg);
#include <stdio.h>这个是用rdtsc指令测试的,这个误差大。
#include <time.h>
int main(void)
{
int i,j,k;
clock_t start, end;
start = clock();
//sleep(1000);
for(i=0;i<10000000;i++)
for(j=0;i<10000000;i++)
for(k=0;i<10000000;i++);
end = clock();
printf("The time was: %f\n", (double)(end - start) / CLK_TCK);
system("PAUSE");
return 0;
}
//利用rdtsc指令计算指令执行时间
#include <stdio.h>
int get_rdtsc() {
__asm
rdtsc
}
int main() {
int i;
for(i=0;i<10;i++) {
int t1,t2;
t1 = get_rdtsc();
sleep(1);
t2 = get_rdtsc();
printf("t2 - t1 = %ld (%ldMHZ) ", t2 - t1, (t2-t1)/1000000);
system("PAUSE");
}
}