7

Я продолжаю получать это раздражающее предупреждение о нехватке памяти / подсказку о закрытии игр, в которые я играю. Это случается очень часто, и у меня все еще остается ~ 6 гигабайт оперативной памяти. Я отключил виртуальную память, потому что она помещала материал в файл подкачки, когда у меня было 10 ГБ свободного ОЗУ, что резко увеличило использование моего диска.

Есть ли способ отключить это предупреждение? У меня есть 16 ГБ оперативной памяти, поэтому это не должно быть проблемой. Я бы предпочел не включать файлы подкачки, потому что мой HD очень громкий, поэтому приятно, чтобы он вращался как можно дольше.

Я не хочу отключить это полностью. В идеале я бы хотел, чтобы он отключился, когда у меня осталось ~ 2 ГБ, а не 6, но если это невозможно, я могу просто отключить его полностью.

3 ответа3

5

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

Вероятно, нет способа отключить это предупреждение, поскольку оно встроено в Windows. Однако я не исключаю, что вокруг будет какая-то взломанная регистрация.

Изменить: этот ответ может быть полезным.

3

Не отключайте файл подкачки. Установите минимальное значение 1024 и максимальное значение 2048 МБ, и вы больше не получите это сообщение.

2

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

Windows не будет перегружать память, так что у вас есть 10 МБ ОЗУ, и одна программа запрашивает 5 МБ (но использует только 2 МБ), а вторая программа запрашивает 6 МБ. Windows отклонит запрос на 2-ю программу, потому что не может гарантировать, что обе программы захотят использовать свои полные выделения, чтобы память была им доступна.

Если бы он позволял делать запросы на выделение без достаточного количества доступного места, вам нужно было бы либо аварийно завершить работу программы, которая пытается записать в память, в которой нет места, либо принудительно завершить работу другой программы, чтобы освободить место. (Linux разрешает чрезмерную загрузку памяти, если вы хотите разрешить ее через /proc/sys/vm/overcommit_memory и следует подходу « принудительно завершить другую программу », когда он сталкивается с записью в память, которую он не может выполнить)

Когда у вас есть файл подкачки, и программа запрашивает 5 МБ (но использует только 2 МБ), она помещает те 2 МБ памяти, которые она фактически использует, в оперативную память, а остальные 3 МБ выделяются в файле подкачки. Потому что это просто "распределение" и ничего из него не было записано или прочитано, но ввод-вывод не выполнялся, и скорость привода не имеет значения. Теперь, когда приходит вторая программа и запрашивает 6 МБ, остается достаточно места для выполнения запроса.

Теперь о вашей ситуации. Прежде всего, когда вы проверяете, сколько оперативной памяти используется, вы проверяете "Рабочий набор" или "Фиксированный размер". "Рабочий набор", то есть "использует только 2 МБ", который мы видели в предыдущем примере, "Фиксированный размер" будет тем "5 МБ", который вы запрашивали выше.

Если у вас нет файла подкачки, ваша общая сумма "Размер коммита" должна быть меньше, чем общая оперативная память в системе, для систем с файлами подкачки ваша общая сумма "Размер фиксации" может быть равна общей оперативной памяти в вашей системе + размер файла подкачки.

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

32-разрядная программа может выделить до 2 ГБ виртуального адресного пространства, а 64-разрядная программа может выделить до 7 ТБ для себя. Таким образом, любые программы, которые вы открываете, могут быстро занимать очень большие куски адресного пространства, поскольку Windows спроектированы и настроены в течение многих лет для работы с файлом подкачки. Я думаю, что предупреждаю пользователя, когда вы достигли 66% от общего количества. емкость очень разумная.

Я знаю, что многие люди предполагают, что они получат более высокую производительность без файла подкачки, и это было верно еще в эпоху Windows 98, но многое изменилось, и теперь управление памятью стало намного лучше. В своем вопросе вы утверждаете, что отключили файл подкачки из-за большого использования диска, как вы измерили использование диска и как вы узнали, что он переходит на файл подкачки? Если вы получаете очень большое количество IO, когда у вас все еще есть много свободного оперативной памяти, это может быть индикатором другой проблемы, которую мы можем помочь решить.

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