【发布时间】:2012-03-12 05:43:08
【问题描述】:
大家好,我正在尝试以微秒为单位编写一些搜索函数的时间,它需要足够长的时间才能显示 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;
【问题讨论】:
-
通常你会打更多的电话并取平均值。
-
是的,我计划稍后添加,现在我只是想让它工作。
-
通常的
clock()分辨率大约是 10 毫秒,所以这可能还不够。如果您需要更高的精度,请查看<chrono>的高分辨率时钟。