Shark в Mac OS X — отличный инструмент для профилирования приложения в работающей системе. Есть ли аналогичные инструменты для Linux?
OProfile может быть, кто-нибудь использовал его?
Shark в Mac OS X — отличный инструмент для профилирования приложения в работающей системе. Есть ли аналогичные инструменты для Linux?
OProfile может быть, кто-нибудь использовал его?
OProfile – это инструмент, который выполняет выборочное профилирование как вашего приложения, и система называет это делает. Это позволяет видеть подробную информацию о том, где он проводит время. У него нет графического интерфейса, но есть несколько интерфейсов, которые позволят вам обрабатывать информацию о прогонах.
Я широко использовал его как для настольных приложений, так и для встроенных систем. Требуется немного усилий, чтобы интерпретировать результаты, но вывод графа вызовов здесь действительно полезен.
Расширяя другой ответ, я использую опцию 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 раз медленнее), но результаты, которые вы получаете, намного точнее, чем у акулы. Я предпочитаю использовать оба, чтобы получить как можно больше информации!
Вероятно, вы можете попробовать Valgrind (http://valgrind.org/). У них есть инструменты профилирования как во время выполнения, так и во время компиляции.
Немного поздно отвечать на этот вопрос, но ближайший ответ — Zoom. Некоторые из команды Shark работали над этим.