在没有Chrono的Windows上使用C ,在纳秒中获得时间
Get time in nanoseconds with C++ on windows without chrono
可能的重复:
Windows C 纳秒计时?
我想测量功能执行时间。但是我使用旧的C (我的意思是我不能使用Chrono),并且在Windows上。我冷落找不到任何可以完成我需要的代码段。请帮助。
您可以使用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:%lldn", llMilliseconds);
}
}
}
看一下queryperformancecounter可以在tick中获得经过的时间,您知道每秒滴答的数量。由于CPU速度可能会改变。
相关文章:
- 从持续时间构造std::chrono::system_clock::time_point
- 在两台机器之间进行时间戳的最佳c++chrono函数是什么
- 为什么 std::chrono 在测量循环和编译器优化的并行 OpenMP 的执行时间时不起作用?
- 如何使用 CTIME/Chrono Libarey 将开始时间与系统时钟进行比较
- 如何使用Chrono或ctime libaray输入设置的开始和结束时间
- C++,自使用boost和std::chrono的纪元以来的时间?为什么 Boost 版本慢 10 倍?
- 如何使用 std::chrono 库设置特定时间?
- 将 boost:::chrono::steady_clock::time_point 转换为标准::时间::steady
- std::chrono 的问题:重置时间
- 如何找到纪元时间戳和 std::chrono::system_clock::now 之间的时差(以毫秒为单位)
- Linux 测量时间问题! std::chrono, QueryPerformanceCounter, clock_ge
- 划分和乘以STD :: Chrono ::持续时间
- 使用 std::chrono / date::gps_clock 将双 GPS 时间戳转换为 UTC/tai
- C 将字符串时间戳转换为STD :: Chrono :: System_Clock :: Time_point
- 访问和存储/解析性std :: Chrono ::持续时间:: milliseconds(cpprest)时使用什么类型
- 在STD :: Chrono ::剩余时间测量的持续时间
- std::chrono 不同的结果 - 固定的时间步长循环
- std::chrono - 固定时间步长循环
- std::chrono::high_resolution_clock - 时间测量
- 错误太多 (标准::时间<chrono>::时间点) (VS2015)