前言
本博客将给出四种在 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-------
有用可以点个大拇指哦 🤭