Наиболее широко используемая библиотека для чтения счетчиков производительности - это Performance API (PAPI) . На самом деле PAPI - это два API ( высокий уровень и низкий уровень ). Я склонен использовать низкоуровневый, поскольку нахожу его более интуитивным, но это может быть только я.
В PAPI есть два типа событий. Предустановленные события должны быть независимыми от платформы, хотя они могут незначительно отличаться в зависимости от того, как они подсчитываются внутри. Они включают в себя промахи TLB и задержки памяти, так что, возможно, вы могли бы начать там. Если это не соответствует вашим потребностям, вы можете захотеть взглянуть на собственные события, которые относятся к вашему конкретному оборудованию и обычно включают в себя каждое событие, которое может рассчитывать оборудование. Используйте papi_native_aval
, чтобы получить их список.
PAPI поддерживает Windows, но я никогда не пробовал. Я не смог найти ничего в документах / документах, относящихся конкретно к Windows 2008, но, по крайней мере, возможно, вы сможете просмотреть источник, чтобы узнать, как получить доступ к нужным счетчикам, даже если вы не можете получить к ним прямой доступ.
Если вам нужно больше, то, возможно, взгляните на perfmon2 , который более новые версии PAPI используют в Linux, если он доступен.