2013-07-29 50 views
5

當我運行 「亞行外殼dumpsys meminfo中」 在Android 4.2,我得到這樣查詢有關 「dumpsys meminfo中」 Android中

        Shared Private  Heap  Heap  Heap 
       Pss Dirty Dirty  Size Alloc  Free 
      ------ ------ ------ ------ ------ ------ 
    Native  28  8  28 16404 12256  3663 
    Dalvik 14062 10060 13736 20032 15254  4778 
    Cursor  0  0  0       
    Ashmem  0  0  0       
Other dev  4762  9556  0       
.so mmap 11699  1824  1500       
.jar mmap  0  0  0       
.apk mmap  368  0  0       
.ttf mmap  811  0  0       
.dex mmap  3736  0  0        
Other mmap  114  16  32       
    Unknown 12064  544 12052       
    TOTAL 47644 22008 27348 36436 27510  8441 

結果我已閱讀的How do I discover memory usage of my application in Android?的頁面,但仍有幾個問題:

  • 爲什麼本機Pss,共享髒私人髒很小?
  • 堆大小應該小於Pss?
  • Unknown是什麼意思?看起來很大。
  • 如果我想知道我的應用使用了多少內存,應該使用哪些數據?總Pss?但它不包括nealy零的本地Pss?

回答

2

請參考問題How do I discover memory usage of my application in Android?。 我也想你參考Detail VSS,RSS,PSS,USS的鏈接。使用用於特定的應用程序的最合適的數據是 USS(唯一的一組大小)作爲

USS爲處理總私有存儲器,即該存儲器是完全特有的過程。 USS是一個非常有用的數字,因爲它表示運行特定流程的真實增量成本。當進程被終止時,USS是實際返回到系統的總內存。當最初懷疑某個流程中的內存泄漏時,USS是最值得關注的數字。

您可以通過adb shell procrank | grep <your.package.name>

得到