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

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

Вопрос

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

OProfile выглядит так, как будто это кто-то использовал?

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

Решение

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

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

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

Расширяя другой ответ, я использую опцию valgrind «callgrind» ( 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 . Некоторые из команды Акулы работали над этим.

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