以微秒为单位定时功能

时间:2012-02-21 21:41:16

标签: c++ ctime

嘿伙计们,我正在尝试计算我在微秒内编写的一些搜索函数,并且需要花费足够长的时间才能显示2位有效数字。我写了这段代码来计算我的搜索功能,但它看起来太快了。我总是得到0微秒,除非我运行搜索5次然后我得到1,000,000微秒。我想知道我的数学是否错误,以微秒为单位获得时间,或者是否有某种格式化功能可以强制它显示两个sig figs?

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;

2 个答案:

答案 0 :(得分:3)

您在此行使用整数除法:

int time = (stop - start)/CLOCKS_PER_SEC;

我建议使用doublefloat类型,您可能需要投射该部门的组件。

答案 1 :(得分:0)

使用QueryPerformanceCounter和QueryPerformanceFrequency,假设您的Windows平台

此处指向ms KB How To Use QueryPerformanceCounter to Time Code

的链接