Для Windows я спробував AMD Codeanalyst, Intel VTune та профайлер у Visual Studio Team Edition.
Codeanalyst не працює (часто падає), і в моєму коді його результати часто є неточними. Його інтерфейс не інтуїтивний. Наприклад, щоб досягти відображення стека викликів у результатах профілю, потрібно перейти на вкладку "Процеси", потім натиснути на ім'я файлу EXE вашої програми, потім натиснути кнопку на панелі інструментів із крихітними літерами "CSS". Але це безкоштовна програма, тому ви можете її спробувати, і вона працює (з меншою кількістю функцій) без процесора AMD.
VTune (700 доларів) має жахливий користувальницький інтерфейс IMO; у великій програмі важко знайти конкретне дерево викликів, яке ви хочете, і ви можете одночасно переглядати лише один "вузол" у програмі (функція з безпосередніми викликами та викликами) - ви не можете переглянути повну дерево викликів. Існує подання графіка виклику, але я не міг знайти спосіб, щоб відносний час виконання відображався на графіку. Іншими словами, функції на графіку виглядають однаково, незалежно від того, скільки часу було проведено в них - це так, ніби вони повністю пропустили сенс профілювання.
Профілізатор Visual Studio має найкращий графічний інтерфейс із трьох, але з якихось причин він не може зібрати зразки з більшості мого коду (зразки збираються лише для кількох функцій у всій моїй програмі C ++). Крім того, я не міг знайти ціну або спосіб купити її безпосередньо; але він поставляється з підпискою MSDN моєї компанії. Visual Studio підтримує керований, власний та змішаний код; Я не впевнений щодо двох інших профайлерів у цьому відношенні.
На закінчення, я ще не знаю хорошого профайлера! Я обов'язково ознайомлюсь з іншими пропозиціями тут.