C++实现统计代码运行时间的示例详解
什么是代码运行时间
代码运行时间指的是从程序开始执行到程序结束运行所需要的时间。在程序开发中,我们通常会关注代码的运行时间,以确定程序的性能和优化方向。
如何统计代码运行时间
一般情况下,我们可以使用系统提供的时间函数来统计代码的运行时间。在 C++ 中,常用的时间函数有 clock
和 chrono
。
使用 clock 函数
clock
函数用于计算程序从启动到调用该函数所经过的时间。其具体用法如下:
#include <iostream>
#include <ctime>
int main()
{
clock_t start, end;
double cpu_time_used;
start = clock(); // 程序开始运行时的时间
// 执行需要统计时间的代码
end = clock(); // 程序结束时的时间
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
printf("CPU Time used: %f\n", cpu_time_used);
return 0;
}
使用 chrono 函数
chrono
函数提供了高精度的计时功能,其用法比 clock
函数更加方便。下面是用 chrono
函数统计时间的示例:
#include <iostream>
#include <chrono>
int main()
{
auto start = std::chrono::high_resolution_clock::now();
// 执行需要统计时间的代码
auto end = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
std::cout << "Time used: " << duration.count() << " microseconds." << std::endl;
return 0;
}
示例说明
下面举两个示例来说明如何使用以上两种方法来统计代码的运行时间。
示例 1:计算 n 个数的和
#include <iostream>
#include <ctime>
#define MAX_N 1000000
int main()
{
clock_t start, end;
double cpu_time_used;
int n = MAX_N;
int res = 0;
start = clock();
for (int i = 0; i <= n; i++) {
res += i;
}
end = clock();
cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
std::cout << "CPU Time used: " << cpu_time_used << " seconds." << std::endl;
return 0;
}
在上面的示例中,我们计算了 1~1000000 的数字之和,并使用 clock
函数计算了程序的运行时间。我们可以看到,程序执行的时间为 0.01 秒左右。
示例 2:使用 std::find 函数查找元素
#include <iostream>
#include <vector>
#include <algorithm>
#include <chrono>
#define MAX_N 1000000
int main()
{
auto start = std::chrono::high_resolution_clock::now();
std::vector<int> v(MAX_N);
int res;
for (int i = 0; i < MAX_N; i++) {
v[i] = i;
}
auto it = std::find(v.begin(), v.end(), MAX_N - 1);
res = *it;
auto end = std::chrono::high_resolution_clock::now();
auto duration = std::chrono::duration_cast<std::chrono::microseconds>(end - start);
std::cout << "Time used: " << duration.count() << " microseconds." << std::endl;
return 0;
}
在上面的示例中,我们使用 std::find
函数查找了 vector 中的一个元素,并测量了程序的运行时间。与之前的示例相比,这个示例使用的是 chrono
函数,运行时间更加精确。
结论
使用以上两种方法可以帮助我们获取程序的运行时间,以判断程序的性能和优化方向。当我们需要比较多个程序的性能时,我们可以对这些程序的运行时间进行对比,以选择最优的程序。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现统计代码运行时间的示例详解 - Python技术站