无需修改代码即可测量功能时间

时间:2012-07-20 10:12:44

标签: linux performance compiler-construction time measurement

我在库中找到了一些代码(函数),可以通过优化编译器来改进(作为主要思想 - 找到深入编译器的好东西)。我想通过脚本自动测量此功能的时间执行。因为它是库中的低级函数并且得到参数,所以很难提取这个。 因此,我想在没有库/应用程序/环境修改的情况下找到完全符合此功能的测量方法(精确的CPU时间)。你有任何想法如何实现吗?

我可以编写包装器但是我将在不久的将来需要更多的性能测试应用程序,我认为为每一个编写包装器非常难看。

P.S。:我的代码将运行在ARM(armv7el)架构上,该架构具有某种“性能监视器控制”寄存器。我在linux内核中学到了“perf”。但不知道我需要的是什么?

1 个答案:

答案 0 :(得分:0)

目前尚不清楚您是否有权访问要分析或改进的函数的源代码,即您是否能够重新编译所考虑的库。

如果您在最近的Linux系统上使用最近的GCC(至少4.6),您可以使用gprof之类的分析器(假设您能够重新编译库)或更好oprofile (您可以在不重新编译的情况下使用它),并且可以根据需要自定义GCC。

请注意,与任何测量一样,剖析可能会改变观察到的现象。

如果您正在考虑自定义GCC编译器以进行优化,请考虑为此目的制作一个GCC插件,或者更好的是MELT扩展名(MELT是一种扩展GCC的高级域特定语言) 。您也可以自定义GCC(使用MELT)以进行特定的分析。