Всем привет. Несколько месяцев назад мы вместе с victorzs решили сделать простой и удобный профилировщик c++ кода (подразумевается профилирование времени исполнения участков кода, функций).
Скриншот профилирования примера из SDK CryEngine
Существующие решения нам не подходили по ряду причин. Нам нужен был качественный профайлер, умеющий делать следующее:
- Профилировать выбранные участки кода
- Работать на нескольких платформах
- Учитывать переключение контекста
- Требовать минимальных дополнительных затрат памяти во время профилирования
- Не накладывать дополнительных временных ограничений во время выполнения приложения. Согласитесь, если профилировщик будет работать дольше, чем профилиуремый косочек кода, то можно сделать некорректные выводы.
В результате тщательной проработки появился на свет профайлер, умеющий делать всё вышеперечисленное, и даже больше!
Если вы хотите знать, сколько времени работает ваш код, и иметь при этом объективные доказательства — прошу под кат, где я покажу, как использовать профилировщик.
Читать полностью »