如何在每个功能级别之外分析代码?

时间:2010-12-03 10:29:42

标签: c++ performance optimization profiling

AFAIK剖析器只能告诉每个函数花费了多少时间。但是,由于C ++编译器倾向于积极地内联代码,而且某些函数并不那么短,因此了解更多细节通常很有用 - 每个构造消耗多少时间。

除了将代码重组为更小的函数外,如何实现这一目标?

2 个答案:

答案 0 :(得分:5)

如果您使用抽样分析器(例如ZoomShark),而不是已检测的分析器(例如gprof),那么您可以获得更精细的粒度,直到声明和指令级别。

答案 1 :(得分:2)

如果您可以使用callgrind,那么您可以获得哪些方法占用大部分处理时间的摘要。然后,您可以使用kcachegrind查看结果。它提供了一个非常好的图表,通过它您可以轻松浏览和找到瓶颈。