Профилирование распределения памяти в C ++ - PullRequest
39 голосов
/ 31 марта 2009

Я пишу приложение и с удивлением вижу, что его общее использование памяти уже слишком велико. Я хочу профилировать динамическое использование памяти моего приложения: сколько объектов каждого вида находится в куче, и какие функции создали эти объекты? Кроме того, сколько памяти используется каждым объектом?

Есть ли простой способ сделать это? Я работаю как на Linux, так и на Windows, поэтому инструментов любой из платформ будет достаточно.

ПРИМЕЧАНИЕ: я не беспокоюсь об утечках памяти здесь.

Ответы [ 12 ]

0 голосов
/ 20 ноября 2014

Попробуйте gperftools - он может:

  • профилировать отдельные части кода или всю программу одновременно.
  • представляет данные через визуально ориентированные графы, показывающие точные вызовы функций и их наследование.
  • сосредоточиться на определенных областях кода в визуальном графике.
  • показывать разницу между дампами.
  • показать выделенное пространство вместо использованного - все это делается с тем же дампом.

Кроме того, это почти не влияет на эффективность программы.

0 голосов
/ 31 марта 2009

Только что увидел на сайте AQtime , что у них есть хорошая поддержка "Профилирования размещения".

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