Какие бесплатные (статистические) профилировщики с низкими издержками можно использовать в Linux?

StackOverflow https://stackoverflow.com/questions/505665

Вопрос

Предпочтительно из репозиториев Ubuntu.

Это было полезно?

Решение

Другие упомянули OПрофиль;для полносистемного статистического профилирования в современных установках Linux это действительно здорово.

Более почтенный инструмент (который не требует поддержки ядра и, следовательно, будет работать в старых версиях Linux или даже в операционных системах, отличных от Linux) — GNU гпроф, включен в бинутилс (и, следовательно, несомненно, уже установлен в вашей среде разработки).

Использовать gprof, просто скомпилируйте свое приложение с помощью -pg аргумент для gcc;файл под названием gmon.out будет создан после выхода из вашей программы, и gprof затем можно использовать для анализа этого файла.

Другие советы

Простой, но эффективный метод — запустить программу под GDB и обработать сигнал SIGINT.Пока программа работает, сгенерируйте SIGINT вручную, набрав control-c или что-то еще, и пока она остановлена, запишите стек вызовов.Сделайте это несколько раз, например 10 или 20, пока программа субъективно работает медленно.Это даст вам очень хорошее представление о том, куда уходит время.

Этот метод не дает точного времени, но позволяет точно определить инструкции, включая инструкции по вызову, которые требуют больше всего времени.

Как я могу профилировать код C++, работающий в Linux?

Сиспроф — хороший профилировщик, похожий на OProfile (также имеет графический интерфейс GTK).который доступен в репозитории Ubuntu.Это профилировщик уровня ядра, для которого требуется модуль ядра, в отличие от gprof, однако, в отличие от gprof, он может профилировать многопоточные приложения.

Есть OПрофиль.Он не так уж и сложен в использовании, но несколько глючен.

У меня был хороший успех с oprofile (http://oprofile.sourceforge.net/news/), который также доступен в репозиториях Ubuntu.Он не требует перекомпиляции и не имеет каких-либо ограничений в отношении общих объектов и т.п.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top