Як "замінити" знову пам'ять із файлу сторінки на фізичну пам'ять в 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.