Доступ к ОЗУ, когда он находится вне кэша, очень медленный.Доступ к данным на вашем модуле DDR3 в несколько сотен раз медленнее, чем доступ к регистрам (или даже кэш-памяти L1).Современные процессоры для настольных компьютеров (или серверов, или ноутбуков) теряют большую часть своего времени для доступа к данным вне своего кэша (L1), например, в модулях памяти DDR3.
Чтобы представить фигуры в перспективе: доступ к регистру или кешированным данным L1 занимает самое большее несколько циклов (например, на машине с частотой 3 ГГц, что обычно означает одну наносекунду).Обработка данных на ваших модулях памяти DDR3 занимает около 200 или 300 наносекунд.За все это время ваш процессор мог выполнить более ста машинных инструкций.
Именно поэтому локальность данных приобретает все большее значение.И это имеет последствия даже для кода, который мы пишем: сканирование связанного списка может быть намного медленнее, чем сканирование массива.
Детали сложны: очень трудно предсказать наихудшее время выполнениянебольшая процедура на текущих процессорах.