tl; dr версія: Обсяг оперативної пам’яті, який Windows показує як «використовується» в режимі очікування, майже завжди практично безглуздий.
Спочатку давайте пояснимо деякі мітки та подивимось, як щось додається чи ні:
З екрана екрана "Монітор ресурсів" ... "Доступно" - це оперативна пам'ять, доступна для негайного призначення для усунення помилки сторінки. "Доступно" - це сума "У режимі очікування" та "Безкоштовно". Це пов’язано з тим, що пам’ять у режимі очікування настільки ж доступна для негайного використання, як і "Безкоштовна".
Отже, в режимі очікування 1211 МБ + безкоштовно 4709 МБ = 5920 МБ доступно. Це працює.
"У користуванні" від диспетчера завдань приблизно "Всього" менше "Доступно". 8147 Всього - 5920 В наявності = 2227 МБ. Це відповідає вашому "2,2 Гб у використанні" на дисплеї диспетчера завдань.
(Пам'ятайте, що для переходу від МБ до ГБ потрібно розділити на 1,024, оскільки Windows тупо використовує префікси SI для позначення потужностей 1024.)
"Кешований" лічильник диспетчера завдань складний. Це сума списку сторінок у режимі очікування (який, як уже згадувалося, включає як кеш SuperFetch, так і кеш сторінки віртуальної пам'яті), плюс кеш-кеш файлів ..., який є частиною адресного простору ядра, є сторінковим, а також включений у лічильнику "у користуванні".
Тому, якщо ви намагаєтеся додати речі, щоб зрозуміти, "куди пішла вся моя оперативна пам'ять", помилково включити "кешований" до суми; при цьому ви отримаєте занадто велику кількість, оскільки ви будете рахувати список очікування та частину "в користуванні" двічі. (Іноді це дає вам загальну суму, що більше загальної оперативної пам’яті!)
Між іншим, є ще один список, «Нульовий» або «Нульовий» список сторінок, який відображення монітора ресурсів просто включає у «Безкоштовно»; для більшості питань "де моя оперативна пам'ять" відмінність "Безкоштовно" від "Нульового" є незначним.
Я не розумію, чому у мене доступно 5,7 Гб, іноді до 4 ГБ в режимі очікування.
Windows є операційною системою віртуальної пам’яті з урахуванням попиту. "Затребуваний під попитом" означає, що сторінки коду та даних, як правило, не вводяться в оперативну пам'ять до тих пір, поки вони не посилаються на них. Щоразу, коли ви посилаєтесь на сторінку, яка не знаходиться в оперативній пам'яті, сторінку ОЗУ необхідно видалити з одного з "доступних" списків (нульовим, безкоштовним або в режимі очікування) та призначити процесу, який її потребує. Потім він зараховується як "використовується" та зараховується до "робочого набору". (Сторінки - 4 Кб.)
Ця послідовність є "помилкою сторінки" - "помилкою жорсткої сторінки", якщо вона означала читання з диска (або SSD). І ми кажемо, що сторінка була "підкачка".
(Багато помилок сторінки фактично усуваються без необхідності переходити на диск. Вони називаються "помилками м'якої сторінки". Потрібно говорити, що це набагато швидше, ніж перехід на диск. Часто вони вирішуються на сторінках, що знаходяться в списку очікування - ось "Кеш сторінки віртуальної пам'яті", про який я вже згадував. Тут я більше не вдаваюся.)
Однак термін "на основі попиту" також застосовується до розподілу фізичної пам'яті (ОЗУ). Процес, який відчуває високу частоту помилок сторінки + багато часу процесора (тобто високий попит на оперативну пам’ять), дозволить використовувати більше оперативної пам'яті; менш зайняті процеси оновлюють свої робочі набори. Якщо наявна оперативна пам’ять є великою (як це є у випадках, які ви описуєте), процесам, як правило, дозволяється просто виправляти помилки та зберігати їх - адже, чому б ні, якщо оперативної пам’яті достатньо?
Але якщо вимоги до збільшення оперативної пам’яті та доступної оперативної пам’яті стануть обмеженими, тоді раніше роздуті процеси будуть урізані, щоб зробити більше оперативної пам’яті доступними для нещодавно зайнятих процесів.
І звичайно, ви знаєте, що жодна сучасна операційна система ніколи повністю не працює? Завжди є завдання з технічного обслуговування, і для роботи їм потрібна оперативна пам’ять. Якщо оперативної пам’яті багато (як і на вашій машині), їм буде дозволено використовувати її досить багато, не тому, що їм так багато потрібно, але тому що більше нічого не працює, що цього потребує. Але якщо потім запустити інтенсивну оперативну програму, ці фонові процеси будуть повернені на їх місце, так би мовити, щоб було більше оперативної пам’яті для того, над чим ви активно працюєте.
Тому помилково дивитись на непрацюючу систему Windows і сказати "о, Windows займає x кількість оперативної пам’яті саме тоді, коли вона простоює!" x дуже залежить від того, скільки оперативної пам’яті є загальною, скільки часу вона не працює, які речі ви встановили, що додавали в систему різні „завдання в режимі очікування” і навіть те, що вона робила до того, як вона не працювала. Таким чином, вона буде сильно відрізнятися від однієї системи до іншої.
Також не зауваження, що у вашій системі "використовується х об'єм оперативної пам’яті у режимі очікування", це означає, що Windows збереже стільки для себе, коли ви запускаєте інтенсивну програму. Це просто означає, що на скільки це використовується зараз, в нинішніх умовах, під впливом багатьох речей, які відбувалися останнім часом.