Как мне профилировать код за пределы уровня функции? - PullRequest
6 голосов
/ 03 декабря 2010

Профилировщики AFAIK могут только определить, сколько времени затрачивается на каждую функцию.Но поскольку компиляторы C ++ имеют тенденцию агрессивно встраивать код, а также некоторые функции не такие короткие, часто бывает полезно узнать больше деталей - сколько времени занимает каждая конструкция.

Как этого можно добиться, кроме как реструктурировать код в более мелкие функции?

Ответы [ 2 ]

5 голосов
/ 03 декабря 2010

Если вы используете профилировщик выборки (например, Zoom или Shark ), а не инструментальный профилировщик (например, gprof), тогдаВы можете получить более тонкие профили, вплоть до уровня инструкций и инструкций.

2 голосов
/ 03 декабря 2010

Если вы можете использовать callgrind , вы можете получить сводку о том, какие методы занимают большую часть времени обработки.Затем вы можете использовать kcachegrind для просмотра результатов.Это дает очень хороший график, с помощью которого вы можете легко просматривать и находить узкие места.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...