Я копался в Resource Monitor в Windows и заметил, что часто большой объем памяти указывается как свободный, а не резервный. Я понимаю, что superfetch в основном извлекает то, что вам, вероятно, понадобится, и кэширует его в оперативной памяти, так почему же он не использует это пространство?

Кроме того, я знаю, что такая система, как readyboost, должна хранить кэшированные файлы, к которым часто обращаются, с компьютера. Тем не менее, глядя на Resource Monitor, я замечаю, что наибольшее количество свободного места происходит при закрытии программы. Почему он не хранит данные из этой закрытой программы в оперативной памяти, чтобы он мог быстрее загружаться в то же самое состояние?

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

Пример оперативной памяти

1 ответ1

1

Я понимаю, что superfetch в основном извлекает то, что вам, вероятно, понадобится, и кэширует его в оперативной памяти, так почему же он не использует это пространство?

Superfetch пытается определить, что вам может понадобиться в ближайшем будущем, и загружает его в память, тем самым, надеясь, что компьютер быстрее реагирует.

В качестве встречного вопроса - учитывая, что вся ваша работающая система занимает ~ 4 ГБ ОЗУ с 2 ГБ в режиме ожидания, что вы часто запускаете, что потребует дополнительного гигабайта или двух?

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

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

Аналогичным образом, «загрузка до одного и того же состояния», вероятно, нежелательна для многих программ. Я усвоил урок в Tomb Raider старой школы - никогда не экономь, пока ты в огне.

Шутка в сторону, хотя есть много причин, по которым нежелательно сохранять данные между сессиями, особенно если есть ошибка. Это также предполагает осведомленность о программе, которую Windows может не иметь (что мы оставляем?).

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

Наконец, в качестве комментария, я думаю, что предположение о размере данных здесь тоже неверно. Для запуска программы может потребоваться большой объем памяти, но если вы не делаете что-то с мультимедиа, "данные" программы, как правило, не очень велики. Например, Firefox на моей машине требует около 300 МБ памяти. Но любая веб-страница "данные" почти наверняка меньше 20 МБ.


Если вы абсолютно настроены на использование этой памяти, вот две мысли:

  • Просмотрите msconfig и убедитесь, что нет ограничения памяти на месте. Нет никаких признаков того, что это проблема, но вы можете дважды проверить, что Windows настроена на использование максимально возможного объема памяти.

  • Создать RAM-диск. Похоже, вы действительно хотите, чтобы эта память использовалась, и это может быть хорошим способом сделать это, особенно если учесть, что вы обеспокоены скоростью работы программы.

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