gpt4 book ai didi

linux - 在不修改代码的情况下测量函数执行时间

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:11:31 25 4
gpt4 key购买 nike

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

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

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

最佳答案

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

如果您在最新的 Linux 系统上使用最新的 GCC(至少是 4.6),您可以使用像 gprof 这样的分析器(假设您能够重新编译库)或更好的 oprofile (无需重新编译即可使用),并且可以根据需要自定义 GCC。

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

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

关于linux - 在不修改代码的情况下测量函数执行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577294/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com