如何在C++
中调用clock()
例如,我想测试线性搜索在数组中查找给定元素需要多长时间。
发布于 2010-07-11 03:13:24
#include <iostream>
#include <cstdio>
#include <ctime>
int main() {
std::clock_t start;
double duration;
start = std::clock();
/* Your algorithm here */
duration = ( std::clock() - start ) / (double) CLOCKS_PER_SEC;
std::cout<<"printf: "<< duration <<'\n';
}
发布于 2015-08-27 13:04:53
另一种解决方案是使用std::chrono
,它是可移植的,并且具有更高的精度(从C++11开始就可以使用)。
下面是一个示例:
#include <iostream>
#include <chrono>
typedef std::chrono::high_resolution_clock Clock;
int main()
{
auto t1 = Clock::now();
auto t2 = Clock::now();
std::cout << "Delta t2-t1: "
<< std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count()
<< " nanoseconds" << std::endl;
}
在ideone.com上运行它给了我:
Delta t2-t1: 282 nanoseconds
发布于 2010-07-11 03:10:37
clock()
返回自程序启动以来的时钟滴答数。有一个相关的常量CLOCKS_PER_SEC
,它告诉您一秒钟内发生了多少个时钟节拍。因此,您可以像这样测试任何操作:
clock_t startTime = clock();
doSomeOperation();
clock_t endTime = clock();
clock_t clockTicksTaken = endTime - startTime;
double timeInSeconds = clockTicksTaken / (double) CLOCKS_PER_SEC;
https://stackoverflow.com/questions/3220477
复制相似问题