前言
本博客将给出四种在 C++ 中可用于 计算算法耗时 的方法。
方法(推荐方法4)
1(返回的是CPU时钟计时单元,每秒为1000个时钟周期)(单位为s,可精确到小数点后三位)
#include <time.h> // or #include <ctime>
const clock_t begin_time = clock();
float seconds = float(clock( ) - begin_time) / 1000; //最小精度到ms
2 (单位为ms,仅精确到整数部分)
#include <iostream>
#include <chrono>
using std::chrono::high_resolution_clock;
using std::chrono::milliseconds;
int main()
{
high_resolution_clock::time_point beginTime = high_resolution_clock::now();
...
high_resolution_clock::time_point endTime = high_resolution_clock::now();
milliseconds timeInterval = std::chrono::duration_cast<milliseconds>(endTime - beginTime);
std::cout << timeInterval.count() << "ms\n";
}
3 (单位为ms,仅精确到整数部分)
#include <sys/timeb.h>
#include <Windows.h> //解决DWORD报错
DWORD start1, end1;
start1 = GetTickCount();
end1 = GetTickCount();
DWORD time = end1 - start1;
cout << "所耗时间为:" << time << "ms" << endl;
4 (单位可到微秒)
#include <chrono> //计算时间
using namespace std::chrono;
auto starttime = system_clock::now();
...
auto diff = std::chrono::duration_cast<std::chrono::milliseconds>(system_clock::now()- starttime).count();
cout << "所耗时间为:" << diff << "ms" << endl;

彩蛋:
python计算程序耗时:(单位为s)
import time
starttime = time.time() # 记录当前时间,返回当前时间的时间戳(1970纪元后经过的浮点秒数)
.......
endtime = time.time()
time = endtime - starttime
print(f"所耗时间为{time}s")
------tbc-------
有用可以点个大拇指哦 🤭
本文详细介绍了C++中四种测量代码执行时间的方法:高精度时钟计时、CPU时钟计时、GetTickCount与high_resolution_clock,以及系统_clock实现的微秒级计时。通过实例展示了每种方法的使用和精度特点,并附带Python计算耗时的对比。
782





