с ++ профилировщик, который можно подключить к запущенному процессу? - PullRequest
5 голосов
/ 27 апреля 2010

У меня есть программа, написанная на c ++, которую я хочу профилировать, и я хочу избежать ее перезапуска при запуске и остановке профилирования. В идеале я бы профилировал использование процессора и распределение памяти. Есть ли инструмент, который позволит мне сделать это? Я работаю на Linux.

Ответы [ 5 ]

4 голосов
/ 27 апреля 2010

Free

  1. OProfile
  2. перфорация
  3. SystemTap (вероятно, для этого нужен дистрибутив RedHat / CentOS)

Не бесплатно

  1. VTune
2 голосов
/ 27 апреля 2010

Моя рекомендация будет Увеличить от RotateRight - вы можете скачать бесплатную 30-дневную оценку с их веб-сайта.

0 голосов
/ 06 мая 2011

Добавьте метрики к вашему коду. Профиль с gprof http://linuxgazette.tuwien.ac.at/100/vinayak.html.

0 голосов
/ 27 апреля 2010

Вы можете попробовать valgrind. Это набор различных модулей, собранных в аккуратный пакет

0 голосов
/ 27 апреля 2010

Если вы можете обойтись простыми метриками, в прошлом я реализовывал простой профилировщик. Отслеживайте память и время. Отслеживайте запуск и остановку каждой функции, печатайте строку в начале и конце. Отслеживайте память до и после, если это важно. Имейте все это под контролем переменной времени выполнения, которую вы можете изменить извне. В веб-приложении это может быть дополнительный параметр post / get. В толстой клиентской программе это может быть дополнительный переключатель.

Затем во время выполнения вы можете начать сбор данных. В прошлом я также добавил несколько уровней, чтобы обеспечить выборочный, а затем более подробный сбор данных.

Удачи.

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