En temel cevap? Hayır. İşletim sistemi kullanıcı için bellek yönetimini yönetir - bu, istediği kadar bir süreç sağlar ve sistemin nasıl çalıştığını değiştirebilme açısından pek bir şey sağlamaz. Bellek kullanımının, Linux sunucularının neden Mac sunucularından daha iyi performans gösterdiğine ilişkin denklemin bir parçası olup olmadığını anlamaya çalışmak çok fazla yardımcı olmaz.
Sanal bellek sistemindeki "hacklenebilirlik" eksikliğinden dolayı en iyi seçenekleriniz, sanal bellek performansını performans sorunlarınız olup olmadığını görmek için değerlendirmektir - en temel olanı kullanmak vm_stat
veya kullanmaktır. kullanarak canlı vm_stat [number of seconds]
birçok sayfa çıkışları oluşan durumda olduğunu öğrenmek için. Kullanılmayan sayfaları RAM'den sabit sürücüye taşımak, sayfaları sabit sürücüden RAM'inize geri almaktan çok daha düşük bir maliyete sahiptir. OS X terimlerindeki bir sayfa, 4kb veri anlamına gelir.
Buna ek olarak, 32 bit işlemler (örn. Illustrator) 4 GB'tan fazla erişemez, bu nedenle teorik olarak 2 GB boş alan olması ve 6 GB yüklüyse işlemin belleği bitmesi mümkündür.
Hem masaüstünüzde hem de sunucularınızda vm_stat 2
son sütunu çalıştırıp kontrol ederdim - özellikle de Illustrator'a geçtiğinizde birden çok saniye gecikmesi yaşadığınızda.
Takasın gerçekte ne kadar büyük olduğunu öğrenmek için Etkinlik Monitörü'nde takas boyutunu kontrol edebilir veya çalıştırabilirsiniz du -shc /var/vm/swap* | tail -n 1
.
Kullanmanın du -sh /var/vm
bir uyarısı vardır: hazırda bekletme moduna sahip dizüstü bilgisayarlarda (son 4 yıl veya daha yeni bir şey) sleepimage
kabaca ne kadar bellek taktığınızın boyutu olabilir .
Mac OS X Bellek Jargonu:
Kablolu : Bu, çekirdek kodunu ve benzerlerini ifade eder. RAM'den hiç taşınmaması gereken bellek. Ayrıca yerleşik bellek olarak bilin.
Paylaşılan : İki veya daha fazla işlem arasında paylaşılan bellek. Her iki işlem de bu bellek miktarını gösterecektir, 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 uygulama için "gerçek" bellek kullanımıdır - mevcut işlemin sahip olduğu fiziksel sayfa sayısının kabaca bir sayısıdır. (Rsize)
Özel : Bu, bir işlemin yalnızca Yerleşik bellekte kullanılan kendi başına kullandığı bellektir. (RPRVT)
Sanal : İşlemdeki, değişkenler veya herhangi bir şey için keyfi olarak geniş bir alan olan herhangi bir şeyle eşlenen toplam adres alanı miktarı, gerçek VM kullanımına eşit değildir. (VSIZE)
Etkin : Bellek şu anda etkin olarak etiketlenmiştir ve RAM kullanılır.
Etkin değil : "Etkin olmayan bellek artık kullanılmıyor ve diske önbelleğe alınıyor. Başka bir uygulamanın alana ihtiyacı olana kadar RAM'de kalacak. Siz (veya bilgisayarınızın bir istemcisi) geri dönerseniz bu bilgiyi RAM'de bırakmak sizin yararınıza olacaktır daha sonra. " - Mac OS X Yardımı
Ücretsiz : Herhangi bir veri olmadan kullanılabilen RAM miktarı.
Bildiğim en iyi belgeler (ve takip araştırmalarında bulabildim) Apple'ın geliştirici web sitesindeki kendi Yönetim Belleği makalesidir.
Diğer değerli kaynaklar: Darwin-dev posta listesi: [ 1 ], [ 2 ] ve MacOSXHints hakkında eski bir makale . Ek olarak Mike Ash blogunda iyi bir layman'ın tanıtımını yayınladı
sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
Dynamic_pager (aslında sanal bellek tahsisi yapan program) başlatılmayacak şekilde çalıştırarak ve yeniden başlatarak sanal bellek sistemini devre dışı bırakmak mümkün olmayabilir (denemedim) . Ancak işletim sistemi sanal belleğe sahip olduğunu varsaydığından, kendinizi çok, çok hızlı bir şekilde sorunla karşılaştırabilirsiniz. Yedekleme çalışması için sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(tek kullanıcı modundan gerekirse)