以微秒为单位对函数计时

Timing a function in microseconds

本文关键字:函数 为单位      更新时间:2023-10-16

嘿,伙计们,我正在尝试用微秒来计时我写的一些搜索函数,它需要足够长的时间才能显示2个有效数字。我写这段代码是为了给我的搜索功能计时,但它似乎太快了。我总是得到0微秒,除非我运行搜索5次,否则我得到1000000微秒。我想知道我是不是计算错了以微秒为单位的时间,或者是否有某种格式化函数可以用来强迫它显示两个sig图?

clock_t start = clock();
index = sequentialSearch.Sequential(TO_SEARCH);
index = sequentialSearch.Sequential(TO_SEARCH);
clock_t stop = clock();
cout << "number found at index " << index << endl;
int time = (stop - start)/CLOCKS_PER_SEC;
time = time * SEC_TO_MICRO;
cout << "time to search = " << time<< endl;

您在这一行使用整数除法:

int time = (stop - start)/CLOCKS_PER_SEC;

我建议使用doublefloat类型,并且您可能需要强制转换除法的组件。

使用QueryPerformanceCounter和QueryPerformanceFrequency,假设您在windows平台上使用

这里是ms KB如何使用QueryPerformanceCounter对进行时间编码的链接