Взаимосвязь между фиксацией, списками в режиме ожидания и доступной физической памятью?

272
DmytroL

Видел эту ветку, но я считаю, что это не полностью отвечает на мой вопрос, так что здесь идет. Я на Windows 8 Enterprise, 4 Гб оперативной памяти на борту, файл подкачки включен. Я смотрю на свои индикаторы производительности и вижу, что текущий заряд фиксации составляет 4,14 ГБ, а объем используемой физической памяти - 2,43 ГБ, плюс еще 919 МБ используются в режиме ожидания (т. Е. Файловый кеш и т. Д.).

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

0

1 ответ на вопрос

0
Jamie Hanrahan

Нет, фиксация не является «текущим требованием к оперативной памяти». Это текущая потребность в виртуальном адресном пространстве на основе файла подкачки (всего по всем процессам плюс некоторые общесистемные распределения).

Очень часто только на часть этого ссылаются. Было бы совершенно глупо связывать ОЗУ для частей виртуального адресного пространства, на которые еще не ссылались (если у вас нет какого-либо способа узнать, на что будут ссылаться в будущем).

С другой стороны, выделение ОЗУ для кеша выполняется потому, что есть веские доказательства того, что кешируемый материал, скорее всего, скоро понадобится снова (в большинстве случаев это свидетельство того, что на него ссылались недавно). Так почему бы не сохранить его в оперативной памяти?

Кроме того: ОЗУ не «выделяется» кешу на любой постоянной основе. Если другим вещам нужно больше оперативной памяти, то оперативная память кеша будет сокращена, если необходимо, чтобы вместить их.

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

См. Также http://superuser.com/questions/943175/windows-says-ram-ran-out- while-there-is-still-4-gb-of-physical-memory-available/943185#943185 Jamie Hanrahan 8 лет назад 0

Похожие вопросы