Инструменты для работы с процессором Windows - PullRequest
1 голос
/ 01 марта 2012

Знаете ли вы какой-либо инструмент профилировщика, который сообщает вам общее количество операций ЦП, выполняемых программой на C / C ++? Мне нужно что-то вроде Valgrind Callgrind на Linux ...

1 Ответ

2 голосов
/ 01 марта 2012

У Intel есть некоторые инструменты , такие как VTune .Они также предоставляют библиотеку счетчиков производительности , которую вы можете использовать для ручного инструментирования кода путем считывания регистров счетчика аппаратных перфокарт до и после фрагмента кода.

Visual Studio имеетпрофилированный профилировщик , но я не знаю, доходит ли он до уровня «инструкции на пенсию».

Вы должны спросить себя, какую информацию вы действительно хотите: хотите ли вы подсчитать количествоциклы, потраченные на функцию, или вы действительно хотите знать, сколько времени настенное время ваше приложение тратит на каждую функцию в целом?Последнее более полезно в большинстве случаев, и вы можете получить его легче, семплинг .(см. также Простой метод Майка Данлавей «сделай вручную» , который работает для больших горячих точек.)

Подсчет фактических инструкций, вышедших из употребления и ошибочных прогнозов в ветвях и т. д., полезен, только если вы действительно понимаетедетали конвейера ЦП и способы его оптимизации.Микросекунды на функцию - это то, что вы действительно хотите оптимизировать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...