在 Windows 下,有一些方便的功能,例如QueryPerformanceCounter
创建mmsystem.h
高分辨率计时器。Linux有类似的东西吗?
okoman
问问题
80928 次
6 回答
31
之前在这里被问过——但基本上,你可以使用一个 boost ptime 函数,或者一个 POSIX clock_gettime() 函数,它可以达到基本相同的目的。
于 2009-02-11T20:29:53.210 回答
30
对于 Linux(和 BSD),您想使用clock_gettime()。
#include <sys/time.h>
int main()
{
timespec ts;
// clock_gettime(CLOCK_MONOTONIC, &ts); // Works on FreeBSD
clock_gettime(CLOCK_REALTIME, &ts); // Works on Linux
}
请参阅:此答案以获取更多信息
于 2009-02-11T20:30:45.613 回答
8
这是一个描述如何在 Linux 和 Windows 上进行高分辨率计时的链接......不,不要使用 RTSC。
于 2011-01-21T16:54:13.690 回答
4
对于 C++11,使用std::chrono::high_resolution_clock
.
例子:
#include <iostream>
#include <chrono>
typedef std::chrono::high_resolution_clock Clock;
int main()
{
auto t1 = Clock::now();
auto t2 = Clock::now();
std::cout << "Delta t2-t1: "
<< std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count()
<< " nanoseconds" << std::endl;
}
输出:
Delta t2-t1: 131 nanoseconds
于 2016-08-17T18:48:53.213 回答
1
于 2009-02-11T20:28:48.580 回答
1
在我看来,没有比 Qt 的QTime类更易于使用的跨平台计时器了。
于 2011-07-04T21:44:02.060 回答