Gerçek, Sanal, Paylaşılan ve Özel Bellek arasındaki fark nedir?


63

Activity Monitor'deki farklı sütunlar biraz kafa karıştırıcı


Etkinlik izleyicisindeki sütunlarla karşılaştırıldığında bir işlemde "Denetle" yi tıklatırsanız, 5. türden bir bellek bulunduğunu belirtmek faydalı olabilir. Özellikle, iki tür "Sanal" bellek vardır: "Sanal Bellek Boyutu" ve "Sanal Özel Bellek". İkincisi, Etkinlik İzleyici'deki "Sanal Not" sütununda gösterilen şeydir.
drfrogsplat 10:10

Yanıtlar:


46

Sunucu Arızasındaki cevabımdan aldım :

Mac OS X Bellek Jargon:

Kablolu : Bu, çekirdek kodunu ve benzerlerini ifade eder. RAM'den çıkarılmaması gereken hafıza. Ayrıca yerleşik hafıza olarak da bilinir.

Paylaşılan : İki veya daha fazla işlem arasında paylaşılan bellek. Her iki işlem de bu miktarda belleği gösterir, böylece gerçekte ne kadar bellek kullanıldığına dair biraz yanıltıcı olabilir.

Gerçek : Bu, task_info () tarafından bildirildiği gibi bir uygulamanın "gerçek" bellek kullanımıdır - mevcut işlemin sahip olduğu fiziksel sayfaların sayısının kabaca bir sayısıdır. (Rsize)

Özel : Bu, bir işlemin yalnızca Resident hafızasında kullanılan kendi başına kullandığı hafızadır. (RPRVT)

Sanal : İşlemdeki herhangi bir şeyle eşlenen toplam adres alanı - değişkenler veya herhangi bir şey için rastgele geniş bir alan olsun - gerçek VM kullanımına eşit değildir. (VSIZE)

Aktif : Halen aktif olarak etiketlenmiş ve RAM kullanılıyor.

Etkin değil : "Etkin değil belleği artık kullanılmıyor ve diske önbelleğe alındı. Başka bir uygulama için alana ihtiyaç duyulana kadar RAM'de kalacak. Bu bilgiyi RAM'de bırakmak sizin (veya bilgisayarınızın bir müşterisi) geri geldiğinde sizin yararınıza olacak daha sonra. " - Mac OS X Yardım

Ücretsiz : Herhangi bir veri içermeyen RAM miktarı.


Bildiğim en iyi dokümantasyon (ve takip araştırmalarında bulabildim), Apple'ın geliştirici web sitesinde kendi Belleği Yönetme hafızası .

Diğer değerli kaynaklar: Darwin-dev posta listesi: [ 1 ], [ 2 ] ve MacOSXHints ile ilgili eski bir makale . Ayrıca Mike Ash, blogunda iyi bir layman'ın tanıtımını yaptı


5
Apple'ın Hafızayı Yönetme belgesini okurken Inactive mutlaka diske önbelleklenmemiş. Bunu, Etkin olmayan bellek kullanımınızı (şu anda benimki 747.5 MB'dir) ve "Takas kullanılmış" (şu anda benimki 0 bayttır) kontrol ediyorsanız gösterebilirsiniz. Etkin değil, yalnızca son zamanlarda herhangi bir işlem tarafından okunmamış / yazılmamış bellek sayfalarını ifade eder.
drfrogsplat 10:10

1
Etkinlik İzleyicisi'nde "Sanal" belleğe iki referans olduğundan, "Sanal" ifadesini netleştirmeye değer olabilir. "Sanal Not" sütunu, İşlemi İnceleme penceresindeki " Sanal Özel Bellek " anlamına gelir ve daha sonra bu pencerede ( Sanal belleğin paylaşılan bileşeni olduğuna inanıyorum) basitçe " Sanal Bellek Boyutu " girdisi bulunur . Bu
10.6.4'te

"Özel hafıza", "gerçek hafızanın" bir parçası mı?
Franklin Yu

6

Gerçek mem fiziksel hafıza ile ilgilidir (bilgisayarınızdaki gerçek RAM modülleri). Sanal Mem, sürece ne kadar "sahte" bellek ayrıldığını, yani bu işlem için kalıcı depolama ortamına (sabit sürücü, yarıiletken sürücü vb.) Tahsis edilen bellek anlamına gelir. Paylaşılan hafıza, diğer işlemlerle paylaşılabilen fiziksel (Gerçek) hafızadır. Özel hafıza, yalnızca tahsis edilen işlem tarafından kullanılabilecek "gerçek" hafızadır.

Bu açıklamalar aynı zamanda ... doğrudan etkinlik izleyiciden -> yardım -> sistem belleği kullanımını görüntüleme konusunda yardımcı olabilir:

Bellek bölmesinin altında görüntülenen bilgilerin bir kısmının açıklaması:

  • Kablolu: Kablolu bellek her zaman RAM'de kalması gereken bilgileri içerir
  • Aktif: Aktif olarak kullanılan bilgileri içeren aktif bellek.
  • Aktif değil: Aktif değil, aktif olarak kullanılmayan bilgileri içerir. RAM'de bu bilgiyi bırakmak, eğer siz (veya bilgisayarınızın bir müşterisi) daha sonra geri gelirseniz sizin yararınızadır.
  • Kullanılan: Kullanılan bellek bir işlem veya sistem tarafından kullanılıyor. Kullanılan hafıza, kablolu, aktif ve etkin olmayan hafızanın toplamıdır. Sistem belleği gerektiriyorsa, kullanılan belleği kullanmadan önce boş bellek alır.
  • Boş: Boş hafıza kullanılmıyor ve hemen kullanılabilir durumda.
  • VM boyutu: Sanal bellek veya VM, bellek olarak kullanılabilecek bir sabit disk alanıdır. VM boyutu, bellek olarak kullanılan disk alanı miktarıdır. Mac OS X, sahip olduğunuz fiziksel RAM'den daha fazla bellek kullanabilir. Sabit disk RAM'den çok daha yavaştır, bu nedenle sanal bellek sistemi verimli performans için bilgileri otomatik olarak disk alanı ve RAM arasında dağıtır. Sayfa giriş / çıkışları: Mac OS X'in RAM ve disk alanı arasında taşınan gigabaytlık bilgi sayısı

6
Bu doğru değil. Sanal Bellek, diskte (takas adı verilen) ayrılan bellek değildir. Sanal bellek, ayrılmış adres alanına sahiptir ancak fiziksel bellekte değildir. Bu aynı şey gibi görünebilir, ama incelikle farklı. Çoğu durumda, programlar belleğe hiç dokunmadan ayırır. Bu durumlarda, programlar çok fazla sanal bellek kullanıyor. Somut bir örnek vermek gerekirse, sistemim şu anda 512 MB takas kullanıyor, ancak tahsis edilmiş 196 GB sanal belleği var (K64'te Snow Leopard kullanan kişiler için oldukça tipik bir miktar).
Louis Gerbarg

2
@Louis, sanal hafıza tahsis edilmiş ancak RAM veya sabit diskten faydalanmadıysa, nerede?
Michael Underwood

4
@Michael: hiçbir yerde. Teorik. Sadece tahsis edilip bir adres atanmış olması, mutlaka kullanıldığı anlamına gelmez. İşletim sisteminin düşük seviye bitleri, bu adreslerin RAM'deki fiziksel konumlarla ne zaman eşleştirileceğini veya depolama alanlarını ne zaman eşleştireceğini bilir, ancak uygulama aslında bu adreslerde bilgi depolamıyorsa bu alanı bağlamaya gerek yoktur. Sadece bu değil, aynı zamanda her işlem için bir sütunun (Sanal Mem) VM Boyutuna eklemeye yaklaşmadığını fark edeceksiniz. İşlemler aslında tüm bu hafızayı kullanmıyor.
Robert S Ciaccio

2
Aslında değiştirilemez bir sürü VM var. Örneğin, 4GB'lık bir dosyayı eşlerseniz 4GB'lık VM alır, okunan dosya doğrudan dosyadan çıkar ve baskı altında asıl dosya kolayca okunabildiği için atılır (değiştirilmez). Sanal
makine

3
VSIZE tarafından, etkinlik izleyicide listelenmeyen bir şeye neye atıfta bulunduğumu, isterseniz listenin başında listelendiğini görebilirsiniz. Aktivite İzleyicisi'nin sanal bellek sütununda listelediği şey, genel olarak VPRVT olarak adlandırılan şeydir; bu, diğer uygulamalar ile paylaşılmayan uygulama tarafından kullanılan sanal adres miktarıdır.
Louis Gerbarg

4

Apple, OSX 10.9'daki (Mavericks) Etkinlik İzleyicisini güncelledi. Burada her şeyin ne anlama geldiği hakkında iyi bir makaleleri var http://support.apple.com/kb/HT5890 . Özetle...

görüntü tanımını buraya girin

  • Fiziksel Bellek: Takılan RAM miktarı.
  • Kullanılan Bellek: Kullanılan RAM miktarı ve diğer uygulamalar için hemen kullanılamaz.
  • Sanal Bellek: Uygulamaların istediği bellek eşleme miktarı. Bu RAM kaynaklarının gerçek bir tüketimi değildir ve boyutu uygulamanın yazarı tarafından belirlenir.
  • Kullanılan Değişimi: Sürücünüzdeki kullanılmayan dosyaları RAM'e ve RAM'den değiştirmek için kullanılan alan. Bazı aktiviteleri görmek normaldir ve RAM kaynaklarını tükettiğinizi göstermez. Bellek basıncının Kırmızı durumda görülmesi RAM kaynaklarının tükendiğini gösterir.
  • Uygulama Belleği: Uygulamalar tarafından kullanılan alan miktarı.
  • Kablolu Bellek: Diske önbelleklenemeyen bellek, bu nedenle RAM'de kalması gerekir. Bu bellek diğer uygulamalar tarafından ödünç alınamaz.
  • Sıkıştırılmış: RAM'deki sıkıştırılmış bellek miktarı, diğer uygulamalar için daha fazla RAM kaynağı sağlar.
  • Dosya Önbelleği: RAM’deki, en son kullanılan dosyaları içeren uygulamaların kullanabileceği şekilde işaretlenmiş alan.

Hafıza Basıncı grafiği

Ücretsiz, Kablolu, Aktif, Aktif Değil ve Kullanılmış bellek istatistiklerinin Etkinlik Monitörü'nün önceki sürümlerindeki birleşimi, Mavericks'te okunması kolay bir "Bellek Basıncı" grafiğiyle değiştirildi.

Bellek basıncı renkli olarak gösterilir:

  • Yeşil - RAM bellek kaynakları var.
  • Amber - RAM bellek kaynakları görevlendiriliyor.
  • Kırmızı - RAM bellek kaynakları tükenmiştir ve OS X, sürücüyü bellek için kullanıyor.
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.