Saya tahu VSZ in ps
adalah untuk total ruang alamat yang dialokasikan untuk aplikasi dan kadang-kadang disebut sebagai vsize (disebutkan dalam halaman manual ps
di linux), tetapi apa definisi VSIZE top
? Output teratas dari iPhone ini berbeda dari yang teratas di Linux:
PID COMMAND %CPU TIME #TH #PRTS #MREGS RPRVT RSHRD RSIZE VSIZE
1875 emma 0.0% 0:30.83 7 139 932 17868K 5328K 29M 181M
root# ps -eo pid,rss,vsz|grep 1875
1875 29324 441324
top
di iOS tidak termasuk objek bersama dalam vsize, atau sesuatu.Jawaban:
Sistem memori Linux dipenuhi dengan banyak rutinitas utilitas pengoptimalan memori dan berbagi memori, membuat gagasan tentang bagaimana memori dibagi dan dikonsumsi di antara, pendekatan yang rumit. Output dari ps dan perintah-perintah lain yang terkait semua mengerjakan output mereka dari data di bawah
/proc
sistem file. Terutamaps
, RSS (memori ukuran penduduk) dan VSIZE (ukuran memori virtual) keduanya penting, namun VSIZE tidak menunjukkan penggunaan memori yang akurat dan perbedaan antara VSIZE dan rss adalah apa yang sebenarnya dimaksudkan dan dialokasikan untuk program selama inisialisasi tetapi mungkin belum dirujuk. Seperti program, mungkin ada banyak pustaka yang ditautkan tetapi belum dimuat karena belum direferensikan dalam runtime program yang sebenarnya. RSS memberikan total memori yang benar-benar digunakan oleh program tetapi mungkin tidak memberikan gambaran yang benar tentang konsumsi memori, karena sebagian besar memori yang dialokasikan dapat dibagi dengan contoh lain dari proses yang sama atau proses lain. Mencari di bawah/proc/<processid>/maps
mungkin memberikan gambaran kasar tentang bagaimana memori telah digunakan tetapi mereka diam kadang-kadang bisa menyesatkan. Menggunakanpmap -x <pid>
dari commandline, berguna untuk melihat penyebarannya.Utilitas yang sering lebih baik adalah
free
danvmstat
.free
akan memberi Anda keseluruhan detail konsumsi memori saat ini dan vmstat dapat digunakan untuk melihat seberapa sering sedang diperbarui.sumber