下面就来详细讲解如何使用C++实现统计代码运行时间计时器的简单实例。
步骤一:引入头文件
在C++中,我们可以使用chrono
标准库来实现计时器。在使用前,需要先引入头文件。在程序的开头,添加以下代码:
#include <chrono>
步骤二:定义变量
接下来,我们需要定义两个time_point
类型的变量,分别代表计时器的起始时间和结束时间:
std::chrono::time_point<std::chrono::system_clock> start, end;
步骤三:记录起始时间
在需要计时的代码前,我们需要记录起始时间。可以使用如下代码:
start = std::chrono::system_clock::now();
这里使用的是系统时钟。也可以使用高精度时钟high_resolution_clock
,但是在一些操作系统中,该时钟的稳定性可能无法保证,因此建议使用系统时钟。
步骤四:记录结束时间
在需要计时的代码后,我们需要记录结束时间:
end = std::chrono::system_clock::now();
步骤五:计算时间差
最后,我们可以计算两个时间点的时间差,即程序运行时间:
std::chrono::duration<double> elapsed_seconds = end - start;
std::cout << "程序运行时间:" << elapsed_seconds.count() << " 秒" << std::endl;
duration
类可以表示一个时间段,其模板参数表示时间的单位,如上例的double
表示单位为秒。count()
方法将时间表示为该单位的数值。
示例一:计算for循环运行时间
下面是一个示例,演示如何计算一个for
循环的运行时间:
#include <iostream>
#include <chrono>
int main() {
std::chrono::time_point<std::chrono::system_clock> start, end;
start = std::chrono::system_clock::now(); // 记录起始时间
for (int i = 0; i < 100000000; ++i) { } // 待计时的代码
end = std::chrono::system_clock::now(); // 记录结束时间
std::chrono::duration<double> elapsed_seconds = end - start;
std::cout << "程序运行时间:" << elapsed_seconds.count() << " 秒" << std::endl;
return 0;
}
上述代码的输出结果为程序运行时间:0.0207186 秒
。
示例二:计算递归函数运行时间
下面是另一个示例,演示如何计算一个递归函数的运行时间:
#include <iostream>
#include <chrono>
int fib(int n) {
if (n == 0)
return 0;
else if (n == 1)
return 1;
else
return fib(n - 1) + fib(n - 2);
}
int main() {
std::chrono::time_point<std::chrono::system_clock> start, end;
start = std::chrono::system_clock::now(); // 记录起始时间
std::cout << fib(40) << std::endl; // 待计时的代码
end = std::chrono::system_clock::now(); // 记录结束时间
std::chrono::duration<double> elapsed_seconds = end - start;
std::cout << "程序运行时间:" << elapsed_seconds.count() << " 秒" << std::endl;
return 0;
}
上述代码的输出结果为102334155 程序运行时间:24.4407 秒
。
以上就是使用C++实现统计代码运行时间计时器的完整攻略,希望能对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C++实现统计代码运行时间计时器的简单实例 - Python技术站