2

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

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

PS:我的代码将在 ARM (armv7el) 架构上运行,该架构具有某种“性能监视器控制”寄存器。我已经了解了 linux 内核中的“perf”。但不知道这是我需要的吗?

4

1 回答 1

0

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

如果你在最近的 Linux 系统上使用最近的 GCC(至少是 4.6),你可以使用像gprof(假设你能够重新编译库)或更好的分析器(你可以在oprofile不重新编译的情况下使用),你可以自定义GCC 满足您的需求。

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

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

于 2012-07-20T11:35:25.767 回答