Библиотека Linux для профилирования

Существует ли библиотека Linux, которая может запускать профилирование производительности в запущенном процессе?

У меня есть довольно большая программа для Linux, которая в значительной степени основана на сценариях. В зависимости от сценариев программа может вести себя совершенно по-разному (и иметь проблемы с производительностью). Что было бы неплохо, так это библиотеку производительности с низкими накладными расходами, которую я мог бы встроить в тот же процесс, который отслеживает и предоставляет процессу обратную связь в реальном времени о его собственной производительности.

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

Кто-нибудь знает о такой библиотеке?

Спасибо!
Эндрю Клофас


person Andrew Klofas    schedule 23.02.2012    source источник


Ответы (2)


Проверьте gprof - он должен делать то, что вы хотите.

person sholsapp    schedule 23.02.2012
comment
Из документа видно, что вызов опции -g/-pg приведет к тому, что программа будет работать медленнее, чем обычно. Кроме того, похоже, что gprof не может обеспечить обратную связь с процессом в режиме реального времени. - person Andrew Klofas; 24.02.2012
comment
Все, что вы добавляете для мониторинга вашего процесса, заставит его работать медленнее, чем обычно. Зачем вам нужна обратная связь в режиме реального времени? - person sholsapp; 24.02.2012
comment
Некоторые накладные расходы — это нормально, но было бы неплохо иметь как можно меньшее влияние. Причина, по которой я ищу обратную связь в реальном времени, заключается в том, что некоторые компоненты программы имеют мягкие ограничения в реальном времени, и было бы неплохо отложить/убить некоторые задачи, если процессор перегружается. - person Andrew Klofas; 24.02.2012

Я думаю, что gperftools хорошо подходит для профилирования. Снижение производительности во время выполнения для данных профиля ЦП очень мало.

person karunski    schedule 23.02.2012