Инструмент или код для работы с кешем и шиной памяти - PullRequest
3 голосов
/ 03 октября 2008

Я столкнулся с проблемой производительности многоядерной (8+) архитектуры с программным обеспечением, написанным на C ++ / VistualStudio / WindowsXP.

Внезапно я понял, что понятия не имею о производительности моего кеша L1 и L2 и пропускной способности CPU-> to-> Memory.

Я протестировал несколько инструментов (включая VTune, Glowcode и т. Д.), Но все они не работают при тестировании под нагрузкой в ​​многоядерной архитектуре (именно поэтому они мне и нужны!).

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

Спасибо!

Ответы [ 5 ]

1 голос
/ 03 октября 2008

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

Хорошая статья о многопоточном программировании и различных скрытых проблемах с ней здесь . Может быть, это поможет?

0 голосов
/ 29 августа 2012

Вы пробовали cachegrind ? Это, конечно, симулятор, но, тем не менее, он позволит вам поймать большинство реальных проблем.

0 голосов
/ 21 ноября 2009

вы можете использовать аппаратные счетчики для измерения частоты промахов L1 и L2; однако я не слишком уверен, какой пакет библиотеки использовать с платформой Windows.

0 голосов
/ 03 октября 2008

Я полагаю, что набор тестов EVEREST проверит производительность вашей памяти / процессора / кэша. Вы можете заглянуть на этот сайт. Страница Эвереста Лавалиса

0 голосов
/ 03 октября 2008

Может быть Memtest86 + - это то, что вы ищете.

...