Как измерить использование полосы пропускания памяти в Windows? - PullRequest
12 голосов
/ 02 августа 2010

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

Существует ли какой-либо инструмент, позволяющий измерить, какая часть пропускной способности памяти используется?

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

Ответы [ 3 ]

10 голосов
/ 25 октября 2010

Если у вас недавно установлен процессор Intel, вы можете попробовать использовать Intel (r) Performance Counter Monitor: http://software.intel.com/en-us/articles/intel-performance-counter-monitor/ Он может напрямую измерять пропускную способность используемой памяти с контроллеров памяти.

3 голосов
/ 16 августа 2010

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

2 голосов
/ 03 августа 2010

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

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

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

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