Я использовал два профильных инструмента (VTune на окнах и dbx (в sunstudio) на Солярисе), который может представить программу без, восстанавливают их, и во время профилирования, программа, просто запущенная на той же скорости как нормальных. Обе из этих 2 функций сохранили меня много времени.
Теперь я хочу знать, существуют ли некоторые бесплатные инструменты, доступные на платформе Linux, может сделать то же самое. Я думаю, что мне нужны профильные инструменты на основе выборки. VTune является хорошим, но дорогим... Я услышал о gprof и valgrind. Но кажется, что gprof должны оснастить программу (таким образом, мы должны восстановить программу), и valgrind замедлит выполнение программы довольно много. (от введения valgrind Cachegrind запускает программы приблизительно 20 - 100x медленнее, чем нормальный, и Callgrind, в котором я нуждаюсь к профилированию, основан на Cachegrind),
Для профилирования я просто должен выяснить время выполнения вызовов функции, таким образом, я могу узнать, где снижение производительности происходит. На самом деле мне не нужны многие низкий уровень профильная информация как обеспеченный Cachegrind...
Профиль неплохой, но его сложно настроить. Это также не требует, чтобы вы перестраивали вашу программу.
Соглашаясь с Полом, я думаю, что Zoom, вероятно, лучший профилировщик Linux, за который можно заплатить.
Однако для получения реальных результатов я полагаюсь на этот простой метод, который я использую еще до изобретения профилировщиков.
Более приятной опцией, чем oprofile, является Zoom. Он похож на Shark в Mac OS X, если вы когда-нибудь пользовались им. Он коммерческий ($199), но вы можете получить бесплатную пробную версию по адресу www.rotateright.com.
Счетчики производительности для Linux - это новый инструмент, который можно использовать в ядрах 2.6.31 и новее; он менее навязчив (как для программы, так и для системы в целом), чем valgrind или OProfile.