Як "замінити" знову пам'ять із файлу сторінки на фізичну пам'ять в Windows відразу (як linux-swap)


10

Чи є можливість замінити назад (повернути всі дані пам'яті, які були поміщені у файл сторінки (або підміняти, на що завгодно)) пам'яті на ПК з Windows?

В Linux можна легко зробити це за допомогою swapoff / dev / sdaX, де X є розділом swap. У Windows, здається, просять мене перезавантажувати кожен раз.

Причина, яку я хотів би зробити це, полягає в тому, що, навіть якщо заміна даних у файл swap дозволяє мені грати в гру, що голодує на ресурси, у фізичному режимі, коли я зупиняю гру, всі інші мої програми запускаються повільний. Це або звичайно звичайно; всі програми були висунуті у файл сторінки, оскільки моя оперативна пам’ять була занадто маленькою, і весь доступ до пам'яті до цих програм після ігрових натраплянь на важкі помилки сторінки, з великими затримками та деякими розладами, як наслідок.

Однак цього розчарування можна легко уникнути, просто дозволивши ПК копіювати всі дані назад у фізичну пам'ять на хвилину або близько того, а потім відновити роботу на швидко працюючому ПК! (замість того, щоб терпіти повільність під час роботи)

Заздалегідь дякую за будь-яку пораду з цього приводу!

З повагою


Те, що вам потрібно, - це "гіпервізор" з кількома копіями Windows, що працюють на ньому. Ви призупиняєте одне і відстороняєте інше. Це робиться досить багато з іншими системами, але я не впевнений, що є гіпервізор, який може витягнути це для Windows.
Даніель Р Хікс

Відповіді:


6

На жаль, немає. Те, як працює система віртуальної пам’яті Windows, багато сторінок просто неможливо відобразити доти, доки вони не винні, і не можуть бути збережені в пам’яті, якщо вони не відображені. Таким чином, Windows повинна чекати, поки доступ до сторінок.


Можливо, якийсь достатньо привілейований сторонній процес може спробувати отримати доступ до цих сторінок, щоб вони помилилися?
badp

Не вдасться багато іншого отримати доступ до сторінок. Вам потрібні неполадки в процесах для додатків, які ви намагаєтеся використовувати.
Джеймі Ханрахан

Подумайте, це можна було б зробити ... Вам доведеться ввести віддалений потік у цільовий процес. Потім цей потік зробить VirtualQuery у адресному просторі, а потім просто прочитає кожну сторінку-приватний процес. Однак немає можливості розрізнити сторінки, які були в оперативній пам’яті та пізніше були підписані на сторінку, порівняно зі сторінками, які ніколи не були створені на сторінці. Також не було б можливості ідентифікувати сторінки, які процес більше ніколи не знадобиться. Таким чином, ви б ходили на пейджинг у багатьох речах, яких вам не довелося.
Джеймі Ханрахан

@JamieHanrahan Це здається, що це спрацює.
Девід Шварц

1

На жаль, такого варіанту немає.

Єдиний спосіб зменшити заміну в Windows - збільшити фізичну оперативну пам’ять.


Або повністю відключити swap. Це не обов'язково річ Windows, але на моїх Linux / BSD машинах я відключаю будь-які форми обертального свопу, оскільки це не приносить користі, і коли речі починають використовувати його, замість того, щоб вдарити жорсткий ліміт, вони сповільнюють все.
вбивця

1
Якщо вимкнути файл сторінки, вимкнення підкачки на диск не вимкне. Це вимкне лише розгортання сторінки з приватного виділеного адресного простору. Вміст файлів, зіставлених з пам'яттю, все ще буде підписано на сторінку і вийде.
Джеймі Ханрахан
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.