测量linux模块中函数的执行时间和调用次数

Posted

技术标签:

【中文标题】测量linux模块中函数的执行时间和调用次数【英文标题】:Measuring execution time of functions and call count in linux module 【发布时间】:2011-09-06 07:43:16 【问题描述】:

我在 linux 2.6.18 (RHEL 5.5) 内核上维护一个内核模块,我们发现了一些性能问题。

我正在尝试使用 oprofile 进行一般分析,但它没有提供(或者我不知道该选项)关于调用函数的次数或执行特定函数所花费的时间的统计信息。我可以编写自己的代码来测量执行每个函数所花费的时间,但是很难将其插入每个函数中。

是否有一个分析器可以做到这一点?

【问题讨论】:

尝试 perf,在这里查看我的答案:***.com/questions/2229336/linux-application-profiling/… perf 是否可用于 2.6.18 内核? 很遗憾没有。从 2.6.31 开始。也许您可以在最新的内核版本下运行您的模块,执行它,分析结果并向后移植所需的修改?这有点远。 【参考方案1】:

也尝试使用最新的flamegraphs。

【讨论】:

以上是关于测量linux模块中函数的执行时间和调用次数的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Linux 多线程环境中测量函数的总执行时间

c ++测量执行时间

timeit模块

如何测量 Linux 和 Windows 中函数的“用户”执行时间

Linux c++ 性能分析工具gprof

测量搜索次数