具有C ++和Linux的高分辨率计时器?

在Windows下,有一些方便的功能,如QueryPerformanceCounterfrom mmsystem.h可以创建高分辨率计时器。Linux有类似的东西吗?



料青山看我应如是
浏览 579回答 3
3回答

莫回无

在此之前有人问过它-但是基本上,您可以使用boost ptime函数,或者可以基本实现相同目的的POSIX clock_gettime()函数。

温温酱

对于Linux(和BSD),您想使用clock_gettime()。#include <sys/time.h>int main(){&nbsp; &nbsp;timespec ts;&nbsp; &nbsp;// clock_gettime(CLOCK_MONOTONIC, &ts); // Works on FreeBSD&nbsp; &nbsp;clock_gettime(CLOCK_REALTIME, &ts); // Works on Linux}

喵喔喔

在C ++ 11中,使用std::chrono::high_resolution_clock。例:#include <iostream>#include <chrono>typedef std::chrono::high_resolution_clock Clock;int main(){&nbsp; &nbsp; auto t1 = Clock::now();&nbsp; &nbsp; auto t2 = Clock::now();&nbsp; &nbsp; std::cout << "Delta t2-t1: "&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; << std::chrono::duration_cast<std::chrono::nanoseconds>(t2 - t1).count()&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; << " nanoseconds" << std::endl;}输出:Delta t2-t1: 131 nanoseconds
打开App,查看更多内容
随时随地看视频慕课网APP