我有一个程序,其中大量时间用于加载和保存数据。现在我想知道每个函数花费了多少时间,以占总运行时间的百分比表示。但是,我想从探查器考虑的总时间中排除加载和保存函数所花费的时间。有没有办法使用 gprof 或任何其他流行的分析器来做到这一点?
最佳答案
同样你可以使用
valgrind --tool=callgrind --collect-atstart=no --toggle-collect=<function>
要查看的其他选项:
--instr-atstart # to avoid runtime overhead while not profiling
获取指令级统计数据:
--collect-jumps=yes
--dump-instr=yes
或者,您可以即时“远程控制”它:callgrind_control
或注释您的源代码(IIRC 也有分支预测统计信息): callgrind_annotate
。
优秀的工具 kcachegrind
是一个了不起的可视化/导航工具。我怎么推荐都不为过:
关于linux - 在 Linux 中分析部分程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6617501/