2010-08-02 3 views
8

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

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

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

+2

Если вам нужен инструмент sysadmin, вам необходимо указать свою ОС. вам нужен программный инструмент, вам нужно указать язык программирования. –

+0

Собственно, нет. Полоса пропускания памяти из процессора через кеши в основной режим представляет собой концепцию низкого уровня _entirely_ независимо от языка программирования. – MSalters

+0

его окна. Я отредактировал заголовок, чтобы отразить это. согласен с msalters, язык программирования не имеет ничего общего с измерением пропускной способности памяти. – pdeva

ответ

2

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

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

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

2

Я бы рекомендовал Visual Studio Sample Profiler, который может собирать примеры событий на определенных аппаратных счетчиках. Например, вы можете выбрать образец пропусков в кэше. Here's an article explaining how to choose the CPU counter, хотя есть и другие счетчики, с которыми вы можете играть.

9

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

+0

любой шанс есть инструмент, который потребляет эти данные и распечатывает его? –

+0

Контроллер монитора производительности Intel прекращен. Вместо этого они вносят обновления и новые функции в монитор монитора процессоров fork на github: https://github.com/opcm/pcm. – wenjianhn

Смежные вопросы