Может ли кто-нибудь рекомендовать хороший профилировщик кода для С++?
Я наткнулся на Блестящий - какой-нибудь хороший? http://sourceforge.net/projects/shinyprofiler/
Может ли кто-нибудь рекомендовать хороший профилировщик кода для С++?
Я наткнулся на Блестящий - какой-нибудь хороший? http://sourceforge.net/projects/shinyprofiler/
Callgrind для Unix/Linux
DevPartner для Windows
Не С++, но программное обеспечение AMD CodeAnalyst бесплатное и функционально упаковано.
http://developer.amd.com/cpu/codeanalyst/codeanalystwindows/Pages/default.aspx
Gprof, если вы используете gcc. Возможно, он не дружелюбен, но по-прежнему полезен.
Вероятно, вас будет интересовать Intel VTune. Скорее полезно и позволяет собирать события низкого уровня, такие как промахи в кеше, которые очень помогают в настройке.
Если вы используете премиум-версию VS 2010, вы получаете профайлер с ней.
Я также использовал пару других бесплатных, но они не сравниваются с кораблями MS. Полезно как второе мнение, хотя.
Quantify (часть пакета IBM/Rational PurifyPlus) - очень хороший профилировщик, но не совсем дешевый. Он также доступен на нескольких платформах - я использовал его в Solaris, Windows и Linux.
В зависимости от того, что вам нужно сделать:
Это не одно и то же.
Для 1 используйте один из рекомендуемых профилировщиков.
Для 2 профилировщик, которого я предпочитаю, - это тот, который у вас уже есть:
http://www.wikihow.com/Optimize-Your-Program%27s-Performance
Чтобы узнать, как это происходит, проверьте это.
Для С++, как и для С# и любого языка, который поощряет уровни абстракции, эти слои могут быть или не быть хорошими с точки зрения разработки программного обеспечения, но они могут убивать производительность. Каждый вызов метода - это объезд при выполнении вашей программы, и стиль побуждает вас вставлять эти вещи, иногда ненужно. Также стиль препятствует вам знать или заботиться о том, что происходит внутри них. Вы можете обнаружить, что они создают и удаляют объекты снизу со скоростью и уровнем общности, намного превышающим то, что вам действительно нужно.
AQtime (для Windows)
Если у вас есть доступ к Mac, я рекомендую использовать Shark из инструментов CHUD.
Вы можете использовать анализатор, который находится в Sun Studio 12 в Linux или Solaris. Это бесплатно. http://developers.sun.com/sunstudio/index.jsp
Если вы не можете найти DevPartner, это связано с тем, что мы переехали в новое владение. Ознакомьтесь с нами на веб-сайте Micro Focus: http://www.microfocus.com/products/micro-focus-developer/devpartner/index.aspx. Бесстыдный плагин: я работаю над командой DevPartner. Наши долгожданные 64-битные версии BoundsChecker и С++/.NET профилировщики отправляются 4 февраля 2011 года. Мы изменили нашу модель ценообразования, чтобы вы могли выбрать либо весь пакет, либо просто профилировщик производительности, если это вам нужно. Пожалуйста, ознакомьтесь с новым выпуском DPS 10.5, когда он появится в прямом эфире!