Мой Firefox внезапно стал вялым, а затем застыл. Я открыл Process Explorer, чтобы посмотреть, что происходит, и заметил, что основной поток firefox.exe застрял в функции NtAllocateVirtualMemory . В то время процесс занимал всего 1,5 ГБ пространства виртуальной памяти, и у меня было более 1 ГБ свободного предела коммитов и как минимум 1 ГБ ОЗУ. Я думал, что пространство памяти Firefox могло стать слишком фрагментированным, поэтому я убил его.

Тогда я получил график неожиданности, как показано ниже.

Скриншот

Как вы можете видеть, в течение всего периода всегда было свободно ОЗУ, но я все равно достиг предела. Файлы подкачки настроены на управление системой, а на системном диске свободно более 17 ГБ, поэтому я понятия не имею, как я могу достичь предела .... Есть мысли по этому поводу?

Система Windows 10, сборка 10586. У меня 8 ГБ оперативной памяти.

(Похоже, что Firefox или что-то похожее заняло 3–4 ГБ виртуальной памяти. Я думаю, что это может быть драйвер дисплея, но почему система не раскрыла файл подкачки?)

1 ответ1

3

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

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

Допустим, у вас есть система с 3 ГБ свободной оперативной памяти и без файла подкачки. И, скажем, приложение запрашивает 2 ГБ памяти. Система скажет "да" и увеличит ограничение на 2 ГБ. Система по-прежнему имеет 3 ГБ свободной оперативной памяти, поскольку приложение еще не использовало ее. Но если другое приложение запрашивает 2 ГБ памяти, ОС придется отказаться. Он имеет 3 ГБ в банке, но выписал чек на 2 ГБ, поэтому он не может написать еще один чек на 2 ГБ.

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