首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Linux用户空间中的高精度计时

Linux用户空间中的高精度计时
EN

Stack Overflow用户
提问于 2011-03-02 16:35:10
回答 4查看 10.2K关注 0票数 4

现在,我正在尝试确定一种方法来测量特定函数所需的时间(类似于pthread_create)。现在,当然,这些类型的函数已经进行了极大的优化,以尽可能少的时间;事实上,如此之少,以至于我的计时器在用户空间中使用gettimeofday (以微秒为单位)无法充分测量任何东西。

通常,如果我可以扰乱内核,我会使用像get_cycles这样的东西来测量原始周期数作为性能指标。然而,我还没有找到在用户空间做这件事的方法。有没有一种方法可以使用get_cycles (或等效的计时器)或其他一些更高精度的计时器,我可以在用户空间中使用它来测量极快的函数?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-03-02 16:40:16

clock_gettime允许您从线程开始、进程开始或时期获得精确到纳秒的时间。

票数 4
EN

Stack Overflow用户

发布于 2011-03-02 16:39:16

使用RDTSC (如果您使用的是x86)或clock_gettime

代码语言:javascript
复制
unsigned long long cycleCount() {
  asm ("rdtsc");
}
票数 7
EN

Stack Overflow用户

发布于 2011-03-02 16:41:12

你有没有尝试过执行你的函数所需的时间,比如说,10000次,然后取平均值?这将省去寻找更精确的计时函数的麻烦。

话虽如此,这个答案是:与gettimeofday()相比,Is gettimeofday() guaranteed to be of microsecond resolution?似乎表明了更好的功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5165108

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档