5

Çok fazla belleğe gereksinim duyan 32 bit son kullanıcı uygulaması üzerinde çalışıyorum. Birkaç gigabayta kadar. Son zamanlarda, dahili bellek ayırma stratejimizi this Raymond Chen article.'dan esinlenerek bellek eşlemeli dosyaları kullanmadan kullanmak için değiştirdim. Harika çalışıyor.Bellek eşlemeli dosyalar: bellek kullanımını izleme

Tek dezavantajı şudur: Bir gigabayt belleği bu şekilde ayırırsam, performans sayaçlarında hiçbir yerde görünmez. Tabi ki, ne kadarının ayrıldığını ve ne kadarının adres alanımla eşlendiğini biliyorum, ancak fiziksel bellek ve sayfa dosyası üzerinde nasıl bölünmüş olduğunu bilmiyorum. Hata ayıklamak için günlüğe kaydetmekten başka bir nedenden ötürü, bilmek isterim.

+0

Bu Süreci altında görebilirsiniz -> Sayfa dosya Bayt – John

cevap

0

Çözüm, uygulamamı sysinternals' VMMap ile izlemekti. Bu, bir uygulama bellek kullanımını tahsis türüne göre (bellek eşlenmiş dosyalara "paylaşımlı" olarak adlandırılır) yanı sıra duruma göre (bellekte veya takas edildiğinde) bozar.

Hatta bir grafik bellek parçalanma haritası var!

0

Çağrı QueryWorkingSet ve çalışma kümesi parçası olan ne kadarının bellek belirlemek için eşleştirilmiş aralıkta yalan sayfa sayısını saymak. Ancak, sayfaların çalışma setinden çıkarılabileceğini, ancak yine de bir yerde fiziksel bellekte olabileceğini unutmayın.

+0

İlginç! Bir takılma olabilir: Windows, bir süredir erişemediğim sayfaları çalışma grubumdan silebilirdi. Birilerinin belleğe ihtiyacı olmadıkça, pencereleri fiziksel bellekte saklayacaklarını farz ediyorum. –