2014-10-23 13 views
5

Neden Process.PrivateMemorySize64 /1024, Windows Görev Yöneticisi Belleği (Özel Çalışma Seti) ile eşleşmiyor?Process.PrivateMemorySize64/1024 neden Windows Görev Yöneticisi Belleği (Özel Çalışma Seti) ile eşleşmiyor?

Büyük (~% 30) bir fark var gibi görünüyor. Artı değer, görev yöneticisi gibi sık güncellenmiyor.

_process.Refresh() çağrısı, yardımcı olmuyor.

+0

buradan bakın (http://www.itwriting.com/dotnetmem.php). Bu, bellek sorunlarının .Net'de bulunmasına yardımcı olabilir. TaskManager'da yazdırılan bellek, uygulamanızın gerçek kullanılan belleği değildir. – HimBromBeere

+0

Bunlar, büyük ölçüde farklı sayılar, sanal hafıza ve fiziksel hafızadır. –

cevap

4

Farklı şeylere bakıyorsunuz.

İşlem sınıfındaki PrivateMemorySize64 özelliği, Özel Bayt performans sayacının eşdeğeridir. Diğer işlemler ile paylaşılamayan ilişkili işlem için ayrılan toplam özel bellek miktarını temsil eder. Özel bayt Özel çalışma kümesi bir süreç olabilir kullanılarak ve olması sadece fiziksel bellek temsil yukarıdaki özel bayt bir alt kümesini, izler diğer ucunda vb sadece fiziksel bellek, aynı zamanda disk belleği dosyaları

vardır diğer süreçlerle paylaşılmamalıdır.

1

PrivateMemorySize64, tüm özel belleğinizi, yalnızca disk için disk belleği bulunmayan özel bellek miktarı olan özel çalışma kümesini değil, temsil eder.

İşleminizin toplam boyutunu öğrenmek isterseniz, bunun yerine VirtualMemorySize64 özelliğini kullanmalısınız. Hafızanın disk belleğine mi yoksa RAM'e mi bağlı olduğuna bakılmaksızın, işleminiz tarafından tahsis edilen tüm hafızayı hesaba katar. Bu, örneğin 32 bitlik işleminizin, 32 bitlik bir işlem için bir sınırlama olan (32 bitlik bir süreçte/3GB seçeneği kullanılmadığı sürece) 2GB'lık Virtual Size (işlem adres alanı) yakınına yaklaşıp yaklaşmadığını öğrenmek için kullanışlıdır. Uygulama, Windows'un 64 bit sürümü üzerinde çalışır ve büyük adres farkındadır).