Belleği sayfa dosyasından Windows'da fiziksel belleğe bir defada “takas etme” (linux takas gibi)


10

Windows PC'de belleği geri takmanın (sayfa dosyasına konulan tüm bellek verilerini (veya tercih ettiğiniz takas) geri takmanın) bir yolu var mı?

Linux'ta, bunu swapoff / dev / sdaX ile kolayca yapabilirsiniz, burada X, swap bölümüdür. Pencerelerde, her seferinde yeniden başlatmamı istiyor gibi görünüyor.

Bunu yapmak istememin nedeni, verileri takas dosyasına aktarmak, fiziksel koçta tamamen kaynağa aç bir oyun oynamama izin verse de, oyunu durdurduğumda, tüm programlarım çalıştırılıyor yavaş. Bu ya da tabii ki normal; RAM'im çok küçük olduğu için tüm programlar sayfa dosyasına aktarıldı ve oyundan sonra bu programlara tüm bellek erişimi büyük sayfa gecikmeleri ve sonuç olarak bazı hayal kırıklıklarıyla zor sayfa hatalarına çarptı.

Bununla birlikte, PC'nin tüm verileri bir dakika kadar fiziksel belleğe kopyalamasına ve ardından hızlı çalışan bir bilgisayarda çalışmaya devam etmesine izin vererek bu hayal kırıklığı kolayca önlenebilir! (çalışma sırasındaki yavaşlığa dayanmak yerine)

Bu konuda herhangi bir tavsiye için şimdiden teşekkürler!

Saygılarımla


İstediğiniz şey, üzerinde birden fazla Windows kopyası bulunan bir "hiper yönetici" dir. Birini askıya alırsınız ve diğerini askıya alırsınız. Bu, diğer sistemlerle oldukça yapılır, ancak Windows için bunu kaldırabilecek bir hipervizör olduğundan emin değilim.
Daniel R Hicks

Yanıtlar:


6

Ne yazık ki hayır. Windows sanal bellek sisteminin çalışma şekli, sayfaların çoğu hata oluncaya kadar eşleştirilemez ve eşleştirilmedikçe bellekte saklanamaz. Bu yüzden Windows sayfalara erişilinceye kadar beklemek zorundadır.


Belki yeterince ayrıcalıklı bir üçüncü taraf süreci bu sayfalara hata yapmaları için erişmeye çalışabilir?
badp

Başka bir işlemin sayfalara erişmesi pek iyi olmaz. Kullanmaya çalıştığınız uygulamaların süreçlerinde hatalı olmalarına ihtiyacınız var.
Jamie Hanrahan

Düşünmeye gel, yapılabilir ... bir çeşit. Hedef işleme uzak bir iş parçacığı enjekte etmeniz gerekir. Bu iş parçacığı daha sonra adres alanında VirtualQuery yapar ve daha sonra her işlem özel sayfasını okur. Ancak, RAM'de bulunan ve daha sonra sayfalara ayrılmış olan sayfalar ile ilk sırada hiç sayfalanmamış sayfalar arasında ayrım yapmanın bir yolu yoktur. Sürecin bir daha asla ihtiyaç duymayacağı sayfaları tanımlamanın bir yolu da yoktur. Yani, yapmak zorunda olmadığınız bir sürü şeyle uğraşıyorsunuz.
Jamie Hanrahan

@JamieHanrahan Bu işe yarayacak gibi görünüyor.
David Schwartz

1

Ne yazık ki böyle bir seçenek yok.

Windows'da değiştirmeyi azaltmanın tek yolu fiziksel RAM'i arttırmaktır.


Veya değiştirmeyi tamamen devre dışı bırakın. Mutlaka bir pencere işi değil, ancak Linux / BSD makinelerimde, herhangi bir dönme takas biçimini devre dışı bırakıyorum çünkü iyi değil ve işler kullanmaya başladığında, zor bir limite çarpmak yerine her şeyi yavaşlatıyorlar.
katil

1
Sayfa dosyasını devre dışı bırakmak diske sayfalamayı devre dışı bırakmaz. Yalnızca özel taahhütlü adres alanının sayfa dışına alınmasını devre dışı bırakır. Bellek eşlemeli dosya içerikleri hala içeri ve dışarı sayfalanacaktır.
Jamie Hanrahan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.