якщо це допомагає, Монітор ресурсів описує всі інші ОЗУ як "очікування"
«Standby» RAM знаходиться у використанні. Він використовується як кеш сторінок (він містить сторінки, нещодавно втрачені з усіх робочих наборів процесів; тобто помилки сторінок можуть бути усунені без виходу на диск), а також для проактивного кешування файлів SuperFetch.
Це вважається "доступним", оскільки сторінки очікування не потрібно записувати на диск, перш ніж вони можуть бути призначені для іншого використання. Наприклад, коли процес потрапляє на помилку сторінки, яка вимагає зчитування з диска, для цього процесу повинні бути призначені нові фізичні сторінки, і при необхідності їх можна взяти зі списку очікування. (Це не перший вибір для пошуку сторінок для цієї мети. Це був би вільний, а потім нульовий список сторінок.)
Іншими словами, ваша система працює як слід.
Ви можете змусити вашу систему легко отримати більше оперативної пам’яті в стані «в користуванні» за допомогою інструмента командного рядка testlimit
, одного з інструментів, що використовуються в експериментах в Windows Internals . Він не входить до звичайних інструментів системних систем, але пов'язаний з ними; знайдіть його тут на сайті sysinternals. Завантаження - це поштовий файл, який містить дві версії, testlimit.exe і testlimit64.exe. Обидва пов'язані з великою адресою, тому 32-розрядна версія зможе виділити до 3 ГіБ на 32-бітній машині, завантаженій з / 3 ГБ, до 4 ГБ на 64-бітній машині.
c:\> testlimit -?
надає допомогу.
c:\> testlimit -d 4 -c 512
спробує виділити 2 ГБ процесно-приватного віртуального адресного простору в 512 виділеннях по 4 МіБ кожен. Це має добре працювати на 64-бітній машині. На 32-бітній машині, що не завантажується з / 3 Гб (більшість ні), вона може помилитися трохи раніше, а в процесі роботи вже є кілька MiB речей (як і сама програма, всі DLL тощо), так Існує не зовсім повний 2 Гб, доступний для програми для виділення.
В обох випадках відбудеться зменшення «доступної» оперативної пам’яті та збільшення оперативної пам’яті «У користуванні», але необов’язково варто 2 ГБ, оскільки немає гарантії, що ОС залишить усі 2 ГБ в процесі приватного робочого набору. Навіть якщо це зробить це за короткий термін, ви можете побачити, як робочий набір процесів зменшиться пізніше, коли ОС вирішить, "гм, ви насправді нічого не робите з цим, інші процеси потребують цього більше" і розгортають його.
Занадто сильно збільште розмір виділення "шматки", відповідно зменшивши кількість шматочків, і це, швидше за все, вийде з ладу, оскільки кожен розподіл повинен бути практично суміжним. наприклад, спробуйте знайти сім 512 відрізків MiB в адресному просторі 4 Гб, і ви, ймовірно, не зможете.
Якщо ви використовуєте параметр l (eak) замість d (irty), програма виділить віртуальний простір, але ніколи не посилається на нього. Це не призведе до помітного зниження "доступної" оперативної пам'яті.
(Параметр d (irty) отримує свою назву від "бітової бітової сторінки" у записі таблиці x86 / x64 сторінки, яка встановлюється, коли до відповідної віртуальної сторінки звертається операнд стилю "модифікувати", тобто вміст сторінки має Це вказівка Windows, що, якщо сторінку потрібно вилучити з робочого набору процесів, її вміст потрібно зберегти десь, перш ніж сторінку можна використовувати для чогось іншого. Сторінки з "брудним" набором біт переходять на "модифікований список сторінок" відразу після виселення; звідти Windows записує їх у відповідні резервні магазини.)
Вам потрібно буде мати достатню кількість "зобов'язань", щоб ці тести працювали, як описано вище (навіть для параметра l (eak), навіть якщо ця опція не використовує значної кількості оперативної пам'яті). Зокрема, ваш "ліміт фіксації" повинен бути щонайменше на 2 Гб (або скільки ви виділяєте) вище, ніж "стягнути плату" перед початком тесту. Зауважте, що це стосується навіть якщо ви використовуєте параметр l (eak), а не лише d (irty). Якщо ви зіткнетесь з цією межею, ви побачите спливаючі вікна "у системи не вистачає пам'яті" або подібні. Це, звичайно, полягає в тому, щоб додати більше оперативної пам’яті та / або збільшити налаштування файлу сторінки.