SORU
31 Aralık 2009, PERŞEMBE


Özel bayt, sanal bayt, çalışma kümesi nedir?

Perfmon windows programı bir işleminde bellek sızıntısı hata ayıklama için kullanıyorum.

Açıklama Perfmon:

Çalışma Kümesi- Çalışma Kümesi, bayt, bu sürecin Çalışma Kümesi içinde geçerli boyutudur. Çalışma Kümesi bellek sayfaları son işlemdeki iş parçacıkları tarafından dokundu kümesidir. Eğer bilgisayarda boş bellek eşik, sayfaları eğer bunlar değilse bile bir işlem Çalışma Kümesi içinde kaldı. Hafızada bir eşiğin altına düştüğünde, sayfaları Çalışma grupları atılır. Eğer gerekirse daha sonra yumuşak-hatalı Çalışma Kümesi geri ana bellek ayrılmadan önce olacak.

Sanal Bayt- Sanal Bayt, bayt, işlemin kullandığı sanal adres alanı içinde geçerli boyutudur. Sanal adres alanı kullanımı mutlaka disk veya ana bellek sayfalarını buna karşılık, kullanımı anlamına gelmez. Sanal uzay sonsuz değil ve işlem kitaplık yüklemek için yeteneğini sınırlayabilir.

Özel Bayt- Özel Bayt bu işlemin diğer işlemlerle paylaşılamayan ayrılan bellek geçerli boyutu (bayt cinsinden).

Q1. Önlem almam gereken Özel Bayt ise sürecin paylaşılan kitaplıklar ve eğer meydana kendisinden gelecek eğer herhangi bir sızıntı herhangi bir içermez olarak herhangi bir sızıntı sahip olup olmadığından emin olmak için mi?

S2. Toplam bellek işlemi tarafından tüketilen nedir? Sanal Bayt veya Sanal Bayt ve Çalışma Kümesi denir

Q3. Özel Bayt, Çalışma Kümesi ve Sanal Bayt arasında herhangi bir ilişki yoktur.

S4. Daha iyi bir fikir hafıza bilgi veren herhangi bir aracı mı?

CEVAP
31 Aralık 2009, PERŞEMBE


Bu sorunun kısa cevabıbu değerlerin hiçbiri ne kadar bir yürütülebilir aslında kullanan güvenilir bir gösterge vardır, ve bunların hiçbiri bir bellek sızıntısı hata ayıklama için çok uygun.

Özel Baytsüreç yürütülebilir bellek miktarına bakınistedi- mutlaka bunun miktarı değilaslında kullanma. Onlar "özel onlar (genellikle) bellek eşlenen dosyaları (örneğin, paylaşılan DLL) hariç, çünkü". Ama Kısmet işte - mutlaka hafıza dışlamak yokbu dosyalar tarafından ayrılmış. Özel bayt değişikliği yürütülebilir kendisi nedeniyle olup olmadığını, ya da bağlı bir kütüphane nedeniyle söylemek yolu yoktur. Özel bayt da vardırdeğilsadece fiziksel bellek, disk belleği veya sayfa bekleme listesinde disk olabilir (yani artık henüz iki disk belleği kullanın, ama değil).

Çalışma Kümesitoplam gösterirfizikselbellek (RAM) süreç tarafından kullanılır. Ancak, özel bayt aksine, bu da bellek eşlenen dosyaları ve diğer çeşitli kaynaklar, özel bayt daha az hassas bir ölçü. Bu "Bellek Kullanımı" ve son yıllarda karışıklık sonsuz miktarda kaynağı olmuştur. Görev Yöneticisi rapor alır aynı değerdir Çalışma Kümesi bellek "" sayfa hatası olmadan ele alınabilir bunun anlamı; ancak, bekleme sayfa listesidir . fizikselayrıcabellekte hala fiziksel olarak ama Çalışma Kümesi, ve bu "Kullanım" bir uygulama en aza indirmek. aniden düşmesi Mem görebilirsiniz neden olduğu bildirilen değil

Sanal Bayttoplamalanı . sanal adres tüm süreç tarafından işgal edilmiş. Bu gibi çalışma kümesi, öyle içermektedir bellek eşlenen dosyaları (paylaşılan DLL), ama aynı zamanda içeren veri bekleme listesi ve verileri zaten belleğine ve oturmuş bir disk belleği dosyası disk üzerinde bir yerde. Toplam sanal bayt ağır yük altında bir sistemde her işlem tarafından kullanılan makine aslında olduğundan daha önemli ölçüde daha fazla bellek ekleyebilirsiniz.

İlişkileri bu yüzden:

  • Özel Bayt uygulaması aslında bir bütçe ayırdı, ama disk belleği dosyası kullanımı vardır;
  • Çalışma Kümesi artı bellek eşlenen dosyaları alınmayan Özel Bayt
  • Sanal Bayt Çalışma Kümesi artı çağrı Özel Bayt ve bekleme listesi vardır.

Burada başka bir sorun var; sadece paylaşılan kitaplıkları uygulama modülü, potansiyel yanlış pozitif uygulamanızın Özel Bayt olarak bildirilen yol, içinde bellek ayrılamadıseninuygulama aynı zamanda içinde bellek ayrılırken en sonpaylaştımodüller, yanlış yolnegatifler. Aslında bu uygulama hiç bir Özel Bayt kendini gösteren bir bellek sızıntısı olmaması için mümkün olduğu anlamına gelir. Düşük ihtimal ama mümkün.

Özel Bayt bir makulyaklaşımbellek miktarını kendi çalıştırılabilir ve yardım için kullanılabilir kullanarakaşağı darbir bellek sızıntısı için potansiyel adaylar listesinde; eğer numarasını büyüyen ve sürekli büyüyen ve sonsuz görürseniz, bu süreci kontrol etmek için bir sızıntı için isterim. Olamaz, ancak buispatorada bir sızıntı değil.

Windows algılama/düzeltme bellek sızıntıları için en etkili araçlarından biri aslında Visual Studio (bağlantı bellek sızıntıları, ürün sayfası için VS kullanarak sayfaya gider). Rational Purify başka bir olasılık. Microsoft da bu konuda daha genel best practices document vardır. Daha araçlar previous question Bu listelenmiştir.

Bu birkaç şeyi açıklığa kavuşturuyor umarım! Bellek sızıntıları izini sürüyor hata ayıklama yapmak için en zor şeylerden biri. İyi şanslar.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Dive In

    Dive In

    17 Temmuz 2013
  • Kenneth Håkonsen

    Kenneth Håk

    13 Mart 2011
  • Visual Life

    Visual Life

    3 Temmuz 2006