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