RAM / takas kullanımını kontrol etme


18

RAM / takas kullanım politikasını uygulama düzeyinde kontrol etmenin bir yolu (uygulama) var mı?

Her zaman kullandığım bazı uygulamalar var ve her zaman RAM'de kalmasını istiyorum ve nadiren kullandığım bir uygulama da var ve talep üzerine takas edilebiliyorlar. Varsayılan yapılandırılmış pencerelerin bana en iyi performansı vereceğini biliyorum ama daha fazlasını elde edip edemeyeceğimi kontrol etmek istiyorum :).

Windows 7 kullanıyorum.


2
+1. XP için çalışan bir yöntemle ilgileniyorum.
Xavierjazz

Yanıtlar:


9

Evet var: programın VirtualLock işlevini çağırmasını sağlayın :

Bir işlemin kilitlediği sayfalar, işlem kilitleninceye veya sonlandırılana kadar fiziksel bellekte kalır. Bu sayfaların kilitli durumdayken sayfa dosyasına yazılmaması garanti edilir.

SetProcessWorkingSetSize işlevinin de yararlı olabileceğine inanıyorum .


Bu insanlar düşünerek ben için bile bir kâfir değilim düşündüren bu o olabilir yararlı olabilir:

Bellekteki sayfaları kilitlemenin geçerli nedenleri olabileceğine dikkat edin. Geçerli bir neden, kullanıcının bir CD yazıcısı çalıştırması ve CD yazıcısının sürekli olarak sayfa dışına çıkması ve bu nedenle bir altlığın oluşturulmasına neden olan bir arabellek eksikliğine neden olabilir. Bu durumda, bellek arabelleklerini kilitlemek geçerli olur, böylece bilgisayarın geri kalanı bir taramayı yavaşlattığı anlamına gelse bile, kullanıcıya hala bir coaster vermek daha iyidir. Başka geçerli nedenler de olabilir - benim açımdan, sayfaları bellekte kilitlemek genellikle tavsiye edilmese de, geçerli durumlar hala var ve fikri öldürmenin burada OP'ye yardımcı olacağını düşünmüyorum.


Güncelleme: bir göz atın Process Hacker 'ın Reduce Working Setmenü seçeneği.


Belki de bu biti makaleden alıntılamak bağlamı içine sokacaktır: "Sayfaları belleğe kilitlemek, kullanılabilir RAM'i azaltarak ve sistemi diğer kritik sayfaları disk belleği dosyasına değiştirmeye zorlayarak sistemin performansını düşürebilir . bir sürecin kilitleyebileceği maksimum sayfa sayısı için bir sınır. Bu performansın ciddi şekilde düşmesini önlemek için bu sınır kasten küçüktür. (Vurgu)

1
@Randolph: Hiç tavsiye etmedim, diğer insanların düşündüklerinin aksine, bunun mümkün olduğunu söylemiştim . Şahsen OP'ye "fikrinizi öldürelim" söylemekten nefret ediyorum - bence OP'ler bunu yapmaması gerektiğini anladı, ama hala istiyorsa, nasıl yapacağını bilme hakkına sahip olduğunu düşünüyorum. ( Bu işlevleri yaratmalarının bir nedeni var ve OP'nin bunları kullanıp kullanmamasını yargılayacak kişi ben değilim.)
Mehrdad

Windows'da geriye dönük uyumluluk için bırakılan birçok kod vardır. Eğer buna sahip olmak için bir neden varsa, o olurdu. Bu, hiçbir koşulda kullanılmaması gereken, ancak uyumluluk nedeniyle bırakılan SQL Server'daki Shrink özelliği ile karşılaştırılabilir. Windows 7, uygun bellek yönetimine sahip modern bir işletim sistemidir ve sayfa dosyası silinmemeli veya programlar "kurallar" ın dışında bellekte kalmaya çalışmamalıdır. Çok zayıf bir uygulamadır ve dengesiz ve / veya kullanılamaz bir sisteme neden olabilir.

1
@Randolph: (Ben benzetmeyi terk ettiğinizi görüyorum.:]) Diğer süreci açmak ve aramak için küçük bir program yapın (~ 10 satırdan fazla olmamalıdır) SetProcessWorkingSetSize. Bu bir yol. Eğer bir geliştirici olmadığınızdan bunun ne anlama geldiğini bilmiyorsanız, tabii ki yapabileceğiniz çok şey yoktur. Ancak yine de mümkündür ve imkansız olduğunu söylemek hala yanlıştır, sadece OP'nin sahip olabileceğinden daha fazla bilgi gerektirir.
Mehrdad

1
@Randolph, çalışan uygulamaları sayfa dosyasına gitmeye zorlayan çeşitli ücretsiz uygulamaları indirebilirsiniz (her işlemde SetProcessWorkingSetSize'i çağırarak).
Chris O

5

Bulduğum tek yol sayfa dosyasını devre dışı bırakmak. Bununla birlikte mükemmel bir çözüm değildir: RAM sınırınıza yaklaştığınızda veya aştığınızda hata mesajları alırsınız ve çökme dökümlerini düzgün şekilde kaydetmeyebilir, bu nedenle sorun gidermeniz gerekiyorsa tekrar açın. Bunun dışında aylardır aksama olmadan Win7 kullanıyorum.

Deneyimlerim: Bir süre kullanılmadıktan sonra takas haline getirilecek bir piyano yazılımı (1GB RAM kullanımı) ile bu sorunu yaşadım. Birkaç saat sonra bir piyano tuşunun çalınması, takas sesin çalması için yeterince hızlı yüklenmeyeceğinden, karışıklık yaratır. (Daha sonra yeniden yüklemeyi zorlamak için tüm kolumu her anahtara koyacağım!)

RAM bir sorunsa, daha fazla satın almanızı öneririm (örn. Windows 7 x64 ile 8 ila 12GB). RAM bilinçli için, RAM'in bol olması bir nimettir.

Ancak daha önce, bir SSD sürücüsü alıp takasınızı takmayı düşünmelisiniz. Diğer birçok sistem avantajı sağlamanın yanı sıra takas kurtarmayı büyük ölçüde hızlandıracak. RAM kullanılmadığı zaman fayda sağlamaz.


3
Yapmak. Değil. Silin. . Sayfa. Dosya. Hiç.

7
Sahibim. Olmuştur. Kullanma. Win7. İle. Hayır. İçin. Aylar. Olmadan. A. Hitch.
mtone

1
Ayrıca
Win7'yi

3
@Randolph: MS ne hakkında konuştuklarını biliyor, çünkü müşterilerinin her zaman bilgisayar uzmanı olmadığını biliyorlar. Ancak, sayfa dosyasının tam olarak ne yaptığını ve yapmadığını gerçekten bilenler için, onları ihtiyaç duymadıkları bir uygulamaya zorlamak için bir neden yoktur.
Mehrdad

2
@Randolph: Emniyet kemeri olmadan hız sınırını aşarsanız, başkaları için sigorta masraflarını arttırmaktan bahsetmeden ölebilir ve başkalarını da öldürebilirsiniz. Bilgisayarınızın belleğini dışarı çıkarması durumunda ortaya çıkabilecek en kötü şey, duruma bağlı olarak biraz zaman kaybetmenizdir. Buradaki benzetmede biraz yanlış (okuma: çok) bir şey görmüyor musunuz? Ayrıca, Linux / Unix kullandınız mı? Windows'un aksine, kendinizi asmak için yeterli ipi nasıl verdiklerini hiç fark ettiniz mi? İnsanlar hala onları kullanıyor - bu etki altında araba kullanmak gibi bir şey mi?
Mehrdad

2

Sayfa dosyası kullanımı birçok faktöre bağlıdır. Çok sayıda program kullanıyorsanız ve hepsi için aynı anda yeterli RAM'e sahip değilseniz, bunların bir kısmı (veya tümü) sayfa dosyasına değiştirilebilir.

4GB RAM'iniz varsa ve 4GB'ın parçalarını engelleyen video kartları ve diğer kaynak kullanıcıları nedeniyle yaklaşık 3GB kullanılabilir olduğunu varsayarsak, teorik olarak sadece çok fazla bellek almayan birkaç program kullanırsınız. asla takas dosyasına ihtiyaç duymaz. Bununla birlikte, Windows Vista ve 7, programları diske değiştirirken çok agresiftir.

Windows 7'nin swappiness'ini azaltan bir ayarım vardı (swappiness bir Linux terimidir, ancak Windows için de geçerlidir ve Windows'un takas saldırganlığını evcilleştirmek için bir kayıt defteri ayarı olduğundan, Microsoft'un kuyudan da olsa kabul ettiğini düşünüyoruz gizli bir şekilde), ancak artık bulamıyorum. Buraya arama burada sona erdi. Bulduğum bu ayara en iyi alternatif, sabit boyutlu bir takas dosyası kullandığınızdan emin olmaktır (32 bit işletim sistemlerinde 4096-4096 ve 6 GB sistem RAM'im olduğu için 64 bit olanlarda 12 GB) özel bir bölme üzerinde. Yedek bir 7200rpm 200GB sürücüye sahip olmak, tüm takas bölümlerimi (Windows XP, 7, 7 64 bit ve çeşitli Linux) bu sürücüye yerleştiriyorum. Benim için çalışıyor gibi görünüyor, ama YMMV.


1

Bahsetmeye değer: Windows belirli uygulamaları sık kullandığınızı algıladığında, bu uygulamaları daha hızlı yüklemek için süper uygulamaları vardır. Sanırım burada işini yapmak için pencerelere güven.

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.