标签: c++ performance optimization profiling
AFAIK剖析器只能告诉每个函数花费了多少时间。但是,由于C ++编译器倾向于积极地内联代码,而且某些函数并不那么短,因此了解更多细节通常很有用 - 每个构造消耗多少时间。
除了将代码重组为更小的函数外,如何实现这一目标?
答案 0 :(得分:5)
如果您使用抽样分析器(例如Zoom或Shark),而不是已检测的分析器(例如gprof),那么您可以获得更精细的粒度,直到声明和指令级别。
答案 1 :(得分:2)
如果您可以使用callgrind,那么您可以获得哪些方法占用大部分处理时间的摘要。然后,您可以使用kcachegrind查看结果。它提供了一个非常好的图表,通过它您可以轻松浏览和找到瓶颈。