內存耗用:VSS/RSS/PSS/USS 的介紹

一般來說內存占用大小有如下規律:VSS >= RSS >= PSS >= USS

  1. VSS - Virtual Set Size (用處不大)
    虛擬耗用內存(包含共享庫占用的全部內存,以及分配但未使用內存)。其大小還包括了可能不在RAM中的內存(比如雖然malloc分配了空間,但尚未寫入)。VSS 很少被用于判斷一個進程的真實內存使用量。


  2. RSS - Resident Set Size (用處不大)
    實際使用物理內存(包含共享庫占用的全部內存)。但是RSS還是可能會造成誤導,因為它僅僅表示該進程所使用的所有共享庫的大小,它不管有多少個進程使用該共享庫,該共享庫僅被加載到內存一次。所以RSS并不能準確反映單進程的內存占用情況


  3. PSS - Proportional Set Size (僅供參考)
    實際使用的物理內存(比例分配共享庫占用的內存,按照進程數等比例劃分)。例如:如果有三個進程都使用了一個共享庫,共占用了30頁內存。那么PSS將認為每個進程分別占用該共享庫10頁的大小。 PSS是非常有用的數據,因為系統中所有進程的PSS都相加的話,就剛好反映了系統中的 總共占用的內存。 而當一個進程被銷毀之后, 其占用的共享庫那部分比例的PSS,將會再次按比例分配給余下使用該庫的進程。這樣PSS可能會造成一點的誤導,因為當一個進程被銷毀后, PSS不能準確地表示返回給全局系統的內存。


  4. USS - Unique Set Size (非常有用)
    進程獨自占用的物理內存(不包含共享庫占用的內存)。USS是非常非常有用的數據,因為它反映了運行一個特定進程真實的邊際成本(增量成本)。當一個進程被銷毀后,USS是真實返回給系統的內存。當進程中存在一個可疑的內存泄露時,USS是最佳觀察數據。


  5. 參考資料:
    http://myeyeofjava.iteye.com/blog/1837860
    http://blog.csdn.net/panda1234lee/article/details/52291588

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
禁止轉載,如需轉載請通過簡信或評論聯系作者。

推薦閱讀更多精彩內容

  • 一、概述 1.1 內存指標概念 Item 全稱 含義 等價 USSUnique Set Size物理內存進程獨占的...
    tiger桂閱讀 2,724評論 0 0
  • 一、 通過eclipse,ADT開發工具的DDMS來查看(Heap) 在“Devices”窗口中選擇模擬器中的一個...
    LiveMoment閱讀 3,978評論 1 2
  • 安卓APP檢查點: aapt dump badging {{文件.apk}} 可以看包名package name、...
    茗嫣閱讀 741評論 1 2
  • 我想 歸于塵土 重新被輪轂碾壓 被雨水洗刷 被大風掠過 然后 生機勃發 靜謐生長 不為世間紛擾所動 不悲不喜 不急...
    三腳貓WW閱讀 485評論 0 0
  • 冷冬日的下午,太陽像蒙在白紙里的隔夜蛋黃,有氣無力的給蒼白的大地添上清淺的一抹,只有亮度,沒有溫度。 然小呼打開車...
    然然巫閱讀 195評論 0 0