2015-01-04 1 views
-1

Имеет ли используемая емкость ОЗУ влияние на скорость извлечения данных из нее?Имеет ли используемая емкость ОЗУ влияние на скорость извлечения данных из нее?

В основном, чем больше используется ОЗУ, тем медленнее поиск данных? Или это не имеет значения, так как L кэши сделаны так быстро?

+1

Ни оперативная память, ни жесткие диски не становятся медленнее при чтении в зависимости от того, сколько они хранят (при использовании твердотельных накопителей производительность может ухудшаться при записи, но не при чтении). Откуда у вас возникла идея, что жесткие диски? –

+2

ОЗУ (и стандартный жесткий диск) не знает, используется ли оно или нет. Действительный байт данных и байт «мусор» выглядят идентично ОЗУ. –

+1

@ DarkFalcon - это не так. Фрагментация, как правило, замедляет хранение носителей, где доступ предполагает физическое перемещение головок. Но большинство систем не страдают от этого для ОЗУ, так как есть небольшая «инерция» доступа, и их блок управления памятью может отображать распределенные физические страницы в смежный логический фрагмент. –

ответ

0

«Почему вас это волнует?» и «Что бы вы сделали с этим?» являются разумными ответами на этот вопрос ... Но позвольте мне посмотреть, могу ли я ответить на него в любом случае.

Как следует из комментариев, в общем, скорость доступа к памяти не зависит от того, насколько она «полная».

Как и в случае с жесткими дисками, единственной потенциальной проблемой является фрагментация, поскольку сама память не имеет понятия, используется ли она или нет. Но виртуальная память представляет даже фрагментированную память как непрерывную, тем самым скрывая фрагментацию от ЦП и (предположительно) от любого механизма предварительной выборки, который может использовать процессор. В общем, фрагментация памяти не имеет отношения к производительности.

При этом существует механизм, по меньшей мере, одного O/S - то есть Linux - который может позволить фрагментированной физической памяти вредить производительности. «Прозрачные огромные страницы» - это оптимизация больших загрузок памяти, которая использует большие (или, мм, огромные) страницы для уменьшения количества записей TLB и, следовательно, количества пропусков TLB. Эта оптимизация может повысить производительность на 2% или более при таких нагрузках. Но прозрачная машина огромных страниц может срабатывать только тогда, когда большая (2 мегабайта) выровненная и непрерывная физическая RAM свободна для распределения; Таким образом, сильно фрагментированная физическая RAM будет препятствовать этому.

+0

Вы, кажется, не замечаете гораздо более простой проблемы: ограниченная емкость кеша. Чем больше «активных» данных хранится, тем больше вероятность замедления операций с пропуском кеша. –

+1

@ChrisStratton: Это полностью зависит от местоположения ваших шаблонов доступа, что не обязательно коррелирует с объемом используемой памяти. Если вы не говорите о рабочем наборе, который подходит в значительной степени или полностью в кеше, то есть, о котором я соглашаюсь, я не замечал. Я привык иметь дело с памятью в гигабайтах и ​​файлах в сотнях гигабайт, так что следы памяти в масштабе кешей, естественно, не встречаются мне :-) – Nemo

1

Нет такой вещи, как использованный или неиспользованный баран. Все биты бара всегда имеют значение. С точки зрения ОЗУ, очевидно, нет никакой разницы в производительности, случайным образом получающей доступ к тому или иному адресу.

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