【发布时间】:2013-03-25 19:43:30
【问题描述】:
我想使用 Linux 分析 C 中的一些代码。我通常只做通常的gettimeofday() 功能,它们易于安装、易于理解且可移植。有人问我为什么不使用 CPU 计数器或 RDTSC 来分析代码,但虽然我知道 RDTSC 可能更精确,但我不能赞成或反对其中一个。所以,我的问题是:在其他条件相同的情况下,人们会使用通常的时间函数或 RDTSC 来分析代码吗?
【问题讨论】:
-
有什么理由不使用像
gprof这样的分析工具? -
"POSIX.1-2008 将
gettimeofday()标记为已过时,建议改用clock_gettime(2)。" -
仅分析并行代码的一小部分...您必须修补 gprof 以分析线程。 perf 会更好,但您不能对代码的各个部分进行计时。
-
@DanielFischer:过时意味着它不起作用? “过时”是什么意思?
-
RDTSC 使用起来稍微困难一些,因为它不是标准的,您需要弄清楚每单位时间有多少“滴答声”。