Android中的Serializable、Parcelable">Android中的Serializable、Parcelable
1109
2025-03-31
Terms
VSS?- Virtual Set Size 虛擬耗用內存(包含共享庫占用的內存)
RSS?- Resident Set Size 實際使用物理內存(包含共享庫占用的內存)
PSS?- Proportional Set Size 實際使用的物理內存(比例分配共享庫占用的內存)
USS?- Unique Set Size 進程獨自占用的物理內存(不包含共享庫占用的內存)
一般來說內存占用大小有如下規律:VSS >= RSS >= PSS >= USS
Overview
本篇文章的目的是為了幫助理解從多種工具導出的關于Linux進程真實占用內存的報告。
Android?有一個叫做?procrank?(/system/xbin/procrank)的工具,它可以從高到低地列出Linux進程的內存占用量 。 每個進程按大小可以分為 VSS, RSS, PSS, 和USS.
為了簡化描述,以下內存將以“頁”的形式來表示,而不是“字節”。像我們的Linux系統內存管理中最低級別的頁有4096 字節。
VSS?(reported as VSZ from ps) 是
一個進程總共可訪問的地址空間
。其大小還包括了可能不在RAM中的內存(比如雖然malloc分配了空間,但尚未寫入)。?VSS 很少被用于判斷一個進程的真實內存使用量。
RSS?是
一個進程在RAM中真實存儲的總內存
。但是RSS還是可能會造成誤導,因為它僅僅表示該進程所使用的所有共享庫的大小,它不管有多少個進程使用該共享庫,該共享庫僅被加載到內存一次。所以RSS并不能準確反映單進程的內存占用情況。
PSS
與RSS不同,它按比例表示使用的共享庫
,?例如:如果有三個進程都使用了一個共享庫,共占用了30頁內存。那么PSS將認為每個進程分別占用該共享庫10頁的大小。 PSS是非常有用的數據,因為系統中所有進程的PSS都相加的話,就剛好反映了系統中的總共占用的內存。 而當一個進程被銷毀之后, 其占用的共享庫那部分比例的PSS,將會再次按比例分配給余下使用該庫的進程。這樣PSS可能會造成一點的誤導,因為當一個進程被銷毀后,PSS不能準確地表示返回給全局系統的內存(the memory returned to the overall system)。
USS?是
一個進程所占用的私有內存。即該進程獨占的內存。
USS是非常非常有用的數據,因為它反映了運行一個特定進程真實的邊際成本(增量成本)。當一個進程被銷毀后,USS是真實返回給系統的內存。當進程中存在一個可疑的內存泄露時,USS是最佳觀察數據。
如果系統支持Python, 有一個叫做smem的工具,它能報告內存以上分類的統計信息。
# procrank
procrank
PID Vss Rss Pss Uss cmdline
481 31536K 30936K 14337K 9956K system_server
475 26128K 26128K 10046K 5992K zygote
526 25108K 25108K 9225K 5384K android.process.acore
523 22388K 22388K 7166K 3432K com.android.phone
574 21632K 21632K 6109K 2468K com.android.settings
521 20816K 20816K 6050K 2776K jp.co.omronsoft.openwnn
474 3304K 3304K 1097K 624K /system/bin/mediaserver
37 304K 304K 289K 288K /sbin/adbd
29 720K 720K 261K 212K /system/bin/rild
601 412K 412K 225K 216K procrank
1 204K 204K 185K 184K /init
35 388K 388K 182K 172K /system/bin/qemud
284 384K 384K 160K 148K top
27 376K 376K 148K 136K /system/bin/vold
261 332K 332K 123K 112K logcat
33 396K 396K 105K 80K /system/bin/keystore
32 316K 316K 100K 88K /system/bin/installd
269 328K 328K 95K 72K /system/bin/sh
26 280K 280K 93K 84K /system/bin/servicemanager
45 304K 304K 91K 80K /system/bin/qemu-props
34 324K 324K 91K 68K /system/bin/sh
260 324K 324K 91K 68K /system/bin/sh
600 324K 324K 91K 68K /system/bin/sh
25 308K 308K 88K 68K /system/bin/sh
28 232K 232K 67K 60K /system/bin/debuggerd
#
Android 任務調度 漏洞掃描服務
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。