Jawaban paling mendasar? Tidak. OS menangani manajemen memori untuk pengguna - memberikan proses sebanyak memori yang diperlukan seperti yang diminta dan tidak memberikan banyak hal dalam hal dapat memodifikasi bagaimana kinerja sistem. Itu tidak membantu banyak dengan mencoba mencari tahu apakah pemanfaatan memori adalah bagian dari persamaan mengapa server Linux mengungguli server Mac.
Karena kurangnya "kemampuan hack" dalam sistem memori virtual, pilihan terbaik Anda adalah mengevaluasi kinerja memori virtual untuk melihat apakah itu benar-benar alasan Anda mengalami masalah kinerja - yang paling mendasar adalah menggunakan vm_stat
atau menggunakan, ikuti. hidup dengan menggunakan vm_stat [number of seconds]
untuk melihat berapa banyak halaman yang keluar terjadi. Memindahkan halaman yang tidak digunakan dari RAM ke hard drive memiliki biaya yang jauh lebih rendah daripada mengambil halaman kembali dari hard drive ke RAM Anda. Halaman dalam istilah OS X mengacu pada 4kb data.
Selain itu, proses 32 bit (mis. Illustrator) tidak dapat mengakses lebih dari 4GB sehingga secara teori dimungkinkan untuk memiliki 2GB gratis dan memiliki proses kehabisan memori jika Anda telah menginstal 6GB.
Pada desktop dan server saya, saya akan menjalankan vm_stat 2
dan memeriksa kolom terakhir - terutama ketika Anda mengalami penundaan beberapa detik ketika beralih untuk mengatakan Illustrator.
Untuk mengetahui seberapa besar swap sebenarnya, Anda dapat memeriksa ukuran swap di Activity Monitor atau menjalankannya du -shc /var/vm/swap* | tail -n 1
.
Menggunakan du -sh /var/vm
memiliki satu peringatan: pada laptop yang memiliki mode hibernate (apa pun selama 4 tahun terakhir atau lebih baru) mungkin ada sleepimage
kira-kira ukuran berapa banyak memori yang telah Anda instal.
Jargon Memori Mac OS X:
Wired : Ini mengacu pada kode kernel dan semacamnya. Memori yang seharusnya tidak pernah dipindahkan dari RAM. Juga dikenal sebagai memori penduduk.
Shared : Memory yang dibagi antara dua proses atau lebih. Kedua proses akan menunjukkan jumlah memori ini sehingga dapat sedikit menyesatkan mengenai seberapa banyak memori yang sebenarnya digunakan.
Nyata : Ini adalah penggunaan memori "nyata" untuk aplikasi seperti yang dilaporkan oleh task_info () - jumlah kasar dari jumlah halaman fisik yang dimiliki proses saat ini. (RSIZE)
Pribadi : Ini adalah memori yang digunakan hanya oleh proses yang digunakan dalam memori Residen. (RPRVT)
Virtual : Jumlah total ruang alamat dalam proses yang dipetakan ke apa pun - apakah itu ruang besar yang sewenang-wenang untuk variabel atau apa pun - tidak menyamakan dengan penggunaan VM yang sebenarnya. (VSIZE)
Aktif : Memori saat ini dilabeli sebagai aktif dan digunakan RAM.
Tidak aktif : "Memori tidak aktif tidak lagi digunakan dan telah di-cache ke disk. Itu akan tetap dalam RAM sampai aplikasi lain membutuhkan ruang. Meninggalkan informasi ini dalam RAM adalah untuk keuntungan Anda jika Anda (atau klien komputer Anda) kembali untuk nanti. " - Bantuan Mac OS X
Gratis : Jumlah RAM sebenarnya tersedia tanpa data apa pun.
Dokumentasi terbaik yang saya tahu (dan telah dapat ditemukan dalam penelitian tindak lanjut) adalah artikel Apple Mengelola Memori di situs web pengembangnya.
Sumber berharga lainnya: milis Darwin-dev: [ 1 ], [ 2 ] dan artikel lama tentang MacOSXHints . Selain itu Mike Ash telah memposting pengantar awam yang baik di blog - nya
Mungkin saja (saya belum mencobanya) untuk menonaktifkan sistem memori virtual dengan menjalankan sudo launchctl unload /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
dan kemudian restart sehingga dynamic_pager (program yang benar-benar melakukan alokasi memori virtual) tidak memulai. Namun karena OS menganggapnya memiliki memori virtual, Anda mungkin menemukan diri Anda mengalami masalah sangat, sangat cepat. Untuk memuatnya kembali dijalankan sudo launchctl load /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist
(jika perlu dari mode pengguna tunggal)