Используя в качестве примера игры - я мог бы играть в игру, которая занимает 30 ГБ памяти на моем жестком диске, но игра могла использовать только 2 ГБ памяти. Очевидно, что игра загружается не сразу, но равно ли использование оперативной памяти тому, сколько данных читается + используется с жесткого диска?

tl; dr Почему игра, использующая 2 ГБ памяти, на самом деле использует 2 ГБ памяти, что является решающим фактором?

2 ответа2

1

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

Во-первых, потому что программа почти никогда не получит доступ ко всем определениям, которые она определяет. Например, предположим, что вы никогда не исследуете конкретный коридор на игровом уровне - нет причин переносить эти данные с диска. Или, если вы не используете функцию нумерованного списка в Word, нет причин вводить этот код. Код и данные, как правило, "выгружаются по требованию", то есть они выгружаются только в том случае, если на них действительно ссылается программа ("требует").

Во-вторых, даже после того, как содержимое было выгружено, операционная система может решить, что что-то еще может более эффективно использовать часть ОЗУ и выгружать ее часть - особенно, если на нее некоторое время не ссылались, особенно в системах. с небольшими объемами оперативной памяти для их рабочей нагрузки (называется "давление ОЗУ"). Это также может относиться как к коду, так и к данным отдельно. Наивным примером могут служить данные уровня, которого вы давно не посещали.

Результатом вышесказанного является то, что объем ОЗУ, который "использует" программа, действительно лучше воспринимается как объем виртуального адресного пространства, на который недавно ссылалась программа, и далее ограниченный тем, что ОС позволяет программе использовать. Он может широко варьироваться в зависимости от того, сколько у вас оперативной памяти, что еще работает в системе и что делает программа.

tl; dr: это сложно. Глава "Управление памятью" Windows Internals, 6th. изд., около 200 страниц, что само по себе является книгой большого размера.

1

Несколько факторов на самом деле.

  1. Максимальный допустимый - операционная система имеет очень сложные и деликатные механизмы, управляющие использованием оперативной памяти. К ним относятся ограничения на объем оперативной памяти, который использует данное приложение. например, ограничение Windows зависит от версии (https://msdn.microsoft.com/en-us/library/windows/desktop/aa366778(v=vs.85).aspx, https://msdn.microsoft.com/ru -us/library/aa366778 (VS.85) .aspx)
  2. Какая программа на самом деле делает. Например, Microsoft Office будет использовать меньше памяти, чем новейший FPP, просто потому, что он должен хранить гораздо меньше данных для рендеринга и расчетов.
  3. Какой тип программы - как и раньше: игра использует много оперативной памяти, потому что в ней должны храниться графические данные всех видов (рендеринг, эффекты, вычисления и т.д.). Кроме того, качество отображения является огромным фактором.
  4. Фактическое оборудование - если система имеет большой объем ОЗУ для графики (на графическом адаптере), то сначала она будет использовать ее, а затем прибегает только к оперативной памяти для хранения реальных файлов приложения и обработанных в данный момент данных. Если этого недостаточно, он прибегнет к использованию большого количества оперативной памяти до предела.
  5. Фактический размер папки игры - это, в первую очередь, рендеринг и другие игровые данные - стены, ландшафт, ландшафт, характеристики оружия, звуковые эффекты и т.д. - все это было описано ранее. Думайте об этом, как будто это будет своего рода каркас. Когда вы играете на компьютере, "только" заполняет эти данные текстурами и т.д. - фактическими стенами. Чем выше качество, которое вы выберете, тем больше вычислительной мощности и памяти будет использовать система, и если этого будет недостаточно, это будет нереально. И это на самом деле и причина того, что каждый этап / миссия / глава загружается отдельно - потому что нет места для всего этого сразу.

РЕДАКТИРОВАТЬ: добавил еще одну ссылку.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .