Вопрос

Кто-нибудь может порекомендовать хороший профилировщик кода для C ++?

Я столкнулся с Shiny - хорошо? http://sourceforge.net/projects/shinyprofiler/

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

Решение

Callgrind для Unix / Linux

DevPartner для Windows

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

Не специфично для C ++, но программное обеспечение AMD CodeAnalyst является бесплатным и полнофункциональным.

http://developer.amd.com/cpu/codeanalyst/ codeanalystwindows / Страницы / default.aspx

Gprof , если вы используете gcc. Это может быть не удобно для пользователя, но все же полезно.

Возможно, вас заинтересует Intel VTune . Полезно и позволяет собирать низкоуровневые события, такие как пропуски кэша, что очень помогает при настройке.

Quantify (часть пакета IBM / Rational PurifyPlus) - очень хороший профилировщик, но не совсем дешевый. Он также доступен на нескольких платформах - я использовал его на Solaris, Windows и Linux.

Зависит от того, что вам нужно сделать:

<Ол>
  • Измерьте, чтобы вы могли проводить регрессионное тестирование, чтобы увидеть, произошли ли изменения в производительности.
  • Найдите причины неоптимальной производительности и оптимизируйте их.
  • Это не одно и то же.

    Для 1 используйте один из рекомендованных профилировщиков.

    Для 2 профайлер, которого я предпочитаю, - тот, который у вас уже есть: http://www.wikihow.com/Optimize-Your-Program%27s- Производительность
    Чтобы узнать, как это происходит, проверьте это.

    Для C ++, как для C # и любого языка, который поощряет уровни абстракции, эти уровни могут быть или не быть хорошими с точки зрения разработки программного обеспечения, но они могут снизить производительность. Каждый вызов метода является обходом при выполнении вашей программы, и стиль побуждает вас вкладывать эти вещи, иногда без необходимости. Кроме того, стиль не рекомендует вам знать или заботиться о том, что происходит внутри них. Вы можете обнаружить, что они создают и удаляют объекты снизу со скоростью и уровнем общности, намного превышающими то, что действительно требуется вашему приложению.

    AQtime (для Windows)

    Если вы используете Premium версию VS 2010, вы получите профилировщик с ней.

    Я также использовал несколько других бесплатных, но они не сравнимы с кораблями MS. Полезно как второе мнение, хотя.

    Если у вас есть доступ к Mac, я рекомендую использовать Shark из ЧУД инструменты.

    Вы можете использовать анализатор, который установлен в Sun Studio 12 в Linux или Solaris. Это & # 347; свободно. http://developers.sun.com/sunstudio/index.jsp

    Если вы не можете найти DevPartner, это потому, что мы перешли под новое владение. Проверьте нас на веб-сайте Micro Focus: http: // www. microfocus.com/products/micro-focus-developer/devpartner/index.aspx . Бесстыдная вилка: я работаю в команде DevPartner Наши долгожданные 64-разрядные версии профилировщиков BoundsChecker и C ++ /. NET будут выпущены 4 февраля 2011 г. Мы изменили нашу модель ценообразования, чтобы вы могли выбрать либо весь комплект, либо только профилировщик производительности, если это то, что вам нужно. Пожалуйста, ознакомьтесь с новой версией DPS 10.5, когда она выйдет в эфир!

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