我想测量一个函数执行时间。但我使用旧的C ++(我的意思是我不能使用chrono)而且我在Windows上。我冷却找不到任何我需要的代码片段。请帮忙。
答案 0 :(得分:1)
在Windows上,您可以选择使用high performance counter来获得高分辨率计时。即使是非常旧的Windows安装和旧编译器也应支持此功能。
答案 1 :(得分:0)
看看QueryPerformanceCounter 经过的时间可以用刻度获得,你知道每秒的刻度数。 它可能在大间隔时间内不可靠,因为CPU速度可能会发生变化。
答案 2 :(得分:0)
您可以使用QueryPerformanceCounter
LARGE_INTEGER liFrequency = {0};
// Get the Frequency
if(QueryPerformanceFrequency(&liFrequency))
{
// Start Timing
LARGE_INTEGER liStart = {0};
if(QueryPerformanceCounter(&liStart))
{
// Do Stuff
// Get Time spent...
LARGE_INTEGER liStop = {0};
if(QueryPerformanceCounter(&liStop))
{
LONGLONG llMilliseconds = (LONGLONG)((liStop.QuadPart - liStart.QuadPart) * 1000.0 / liFrequency.QuadPart);
printf("time ellapsed ms:%lld\n", llMilliseconds);
}
}
}