Как измерить использование пропускной способности памяти в Windows?

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

Есть ли какой-либо инструмент там, который позволяет иметь размеры, сколько из пропускной способности памяти используется?

Править: Обратите внимание на то, что типичные профилировщики показывают вещи как утечки памяти и выделение памяти, которым я не интересуюсь. Я только, насыщается ли пропускная способность памяти или нет.

12
задан Paul R 2 August 2010 в 13:47
поделиться

2 ответа

было бы сложно найти инструмент, который измерял бы использование полосы пропускания памяти для вашего приложения.

Но поскольку проблема, с которой вы сталкиваетесь, связана с предполагаемой проблемой пропускной способности памяти, вы можете попытаться измерить, генерирует ли ваше приложение много ошибок страниц в секунду, что определенно будет означать, что вы не приблизились к теоретической пропускной способности памяти.

Вы также должны измерить, насколько дружественны к кешу ваши алгоритмы. Если они перегружают кэш, использование полосы пропускания вашей памяти будет серьезно затруднено. Google «измеряет промахи в кеше» на хороших источниках, которые расскажут вам, как это сделать.

2
ответ дан 2 December 2019 в 20:39
поделиться

Я бы порекомендовал Visual Studio Sample Profiler, который может собирать образцы событий на определенных аппаратных счетчиках. Например, вы можете выбрать выборку при промахах в кэше. Вот статья, объясняющая, как выбрать счетчик ЦП , хотя есть и другие счетчики, с которыми вы также можете поиграть.

3
ответ дан 2 December 2019 в 20:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: