профилировщик C++, который может присоединить к рабочему процессу?

Мне записали программу в C++, который я хочу представить, и я не хочу перезапускать его, когда я запускаю и прекращаю представлять. Идеально я был бы профильным и использование ЦП и выделение памяти. Есть ли какой-либо инструмент, который позволит мне делать это? Я работаю на Linux.

5
задан Paul R 27 April 2010 в 05:08
поделиться

4 ответа

Бесплатно

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

Не бесплатно

  1. VTune
4
ответ дан 14 December 2019 в 13:30
поделиться

Я бы порекомендовал Zoom от RotateRight - вы можете бесплатно загрузить 30-дневную пробную версию с их веб-сайта.

2
ответ дан 14 December 2019 в 13:30
поделиться

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

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

Удачи.

0
ответ дан 14 December 2019 в 13:30
поделиться

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

0
ответ дан 14 December 2019 в 13:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: