Bezdepbonusu7Программирование: статьи и ответы

Вопрос

Есть ли аналогичный инструмент для Linux, который работает как Shark в Mac OS X?

Автор вопроса: epatelОтветов: 4

Shark в Mac OS X - отличный инструмент для профилирования приложения в работающей системе. Есть ли аналогичные инструменты для Linux?

OProfile может быть, кто-нибудь использовал его?

linuxprofilingprofileroprofile

Ответы

Ответ 1 · рейтинг 4 · Ben Combee

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

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

Ответ 2 · рейтинг 9 · Chris Jefferson

Расширяя другой ответ, я использую опцию callgrind valgrind (http://valgrind.org). Затем установите kcachegrind из KDE, чтобы получить красивый графический интерфейс.

В качестве учебника для манекена выполните:

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

2) Запуск с:

valgrind --tool=callgrind <name of your app> <your app's options>

Это должно создать файл с именем 'callgrind.something', который вы можете загрузить в kcachegrind.

Вы также можете посмотреть:

valgrind --tool=cachegrind <name of your app> <your app's options>

Что даст вам информацию о том, как ваше приложение взаимодействует с кешем вашего процессора.

Обратите внимание, что хотя valgrind и shark кажутся похожими приложениями, они работают по-разному. Когда вы запускаете приложение в valgrind, оно будет работать во много раз медленнее, чем обычно (часто более чем в 40 раз медленнее), но результаты, которые вы получаете, намного точнее, чем у акулы. Я предпочитаю использовать оба, чтобы получить как можно больше информации!

Ответ 3 · рейтинг 5 · Community

Вероятно, вы можете попробовать Valgrind (http://valgrind.org/). У них есть инструменты профилирования как во время выполнения, так и во время компиляции.

Ответ 4 · рейтинг 5 · ohmantics

Немного поздно отвечать на этот вопрос, но ближайший ответ - Zoom. Некоторые из команды Shark работали над этим.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы