Память компьютера организована иерархически. Самые верхние уровни обеспечивают самый быстрый доступ. Однако существуют физические ограничения на объем непосредственно доступной памяти. Грубо говоря, вы просто не можете понатыкать столько пинов к процессору чтобы в регистры помещались мегабайты или гигабайты. Принято выделять следующие уровни в иерархии:

  • Регистры процессора
  • Кэш процессора (L1, L2, L3)
  • Оперативная память
  • Дисковая память

Прикладные программисты обычно не работают с регистрами, это дело компилятора. Кэшем мы тоже плохо управляем. Мы только можем помочь компилятору и процессору предсказать что класть в кэш, используя правильные алгоритмы. Эти алгоритмы работают с последовательными участками памяти.

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

Рекомендую прочитать: