Valgrind - callgrind Profiler:如何知道哪个函数需要更多时间

Posted

技术标签:

【中文标题】Valgrind - callgrind Profiler:如何知道哪个函数需要更多时间【英文标题】:Valgrind - callgrind Profiler : How to know which function is taking more time 【发布时间】:2015-10-30 11:07:22 【问题描述】:

我正在尝试使用 valgrind - callgrind 工具分析某些可执行文件。 我使用callgrind_annotate --auto=yes 创建了带注释的输出。 创建的输出告诉我 Ir count ,根据我的理解,它是特定指令被调用的次数,但我想知道代码的哪一部分执行时间最长。

我怎么知道?

在我的应用程序中,我想找到花费更多时间的部分......可能某些情况下,某些函数被调用的时间比其他函数更多......但是被调用的时间更少的函数花费的时间更多时间比别人多

【问题讨论】:

use valgrind to know time(in seconds) spent in each function的可能重复 【参考方案1】:

我建议您使用 UI KCachegrind。它使您更容易理解您的应用程序流程并检测可能的瓶颈。

【讨论】:

我还没有安装 KCachegrind ...但它的输出不会再次基于事件计数。 kcachegrind可以显示函数调用的使用时间吗? 它在哪里/如何显示它? 好久没用KCachegrind了。它曾经包含在 valgrind 中。尽管github.com/KDE/kcachegrind,他们的 github 存储库仍处于活动状态

以上是关于Valgrind - callgrind Profiler:如何知道哪个函数需要更多时间的主要内容,如果未能解决你的问题,请参考以下文章

valgrind/callgrind 可以在发布的可执行 C++ 程序上工作吗?

valgrind的callgrind工具进行多线程性能分析

valgrind / callgrind:什么是`_dl_runtime_resolve_xsave`

valgrind 使用入门

如何使用 KCachegrind 和 Callgrind 仅测量我的部分代码?

性能分析