现在,我正在尝试确定一种方法来测量特定函数所需的时间(类似于pthread_create)。现在,当然,这些类型的函数已经进行了极大的优化,以尽可能少的时间;事实上,如此之少,以至于我的计时器在用户空间中使用gettimeofday (以微秒为单位)无法充分测量任何东西。
通常,如果我可以扰乱内核,我会使用像get_cycles这样的东西来测量原始周期数作为性能指标。然而,我还没有找到在用户空间做这件事的方法。有没有一种方法可以使用get_cycles (或等效的计时器)或其他一些更高精度的计时器,我可以在用户空间中使用它来测量极快的函数?
发布于 2011-03-02 16:40:16
clock_gettime允许您从线程开始、进程开始或时期获得精确到纳秒的时间。
发布于 2011-03-02 16:39:16
使用RDTSC (如果您使用的是x86)或clock_gettime
unsigned long long cycleCount() {
asm ("rdtsc");
}发布于 2011-03-02 16:41:12
你有没有尝试过执行你的函数所需的时间,比如说,10000次,然后取平均值?这将省去寻找更精确的计时函数的麻烦。
话虽如此,这个答案是:与gettimeofday()相比,Is gettimeofday() guaranteed to be of microsecond resolution?似乎表明了更好的功能。
https://stackoverflow.com/questions/5165108
复制相似问题