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

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

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


person epatel    schedule 20.10.2008    source источник


Ответы (4)


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

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

person Ben Combee    schedule 03.12.2008

Расширяя другой ответ, я использую опцию 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 раз медленнее), но результаты, которые вы получаете, намного точнее, чем у акулы. Я предпочитаю использовать оба, чтобы получить как можно больше информации!

person Chris Jefferson    schedule 02.12.2008

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

person Community    schedule 20.10.2008

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

person ohmantics    schedule 07.12.2010
comment
Обновление: также обратите внимание, что Zoom теперь работает на Mac OS X... и Shark полностью исчез. - person federal; 22.10.2012
comment
К сожалению, Zoom больше не поддерживается. С веб-сайта RotateRight: Zoom не обновлялся с 2015 года, поэтому он может не работать на более новых системах. В настоящее время нет планов продолжать разработку Zoom. - person chadrik; 11.08.2018