Android的procstats的更深入的解释

时间:2014-12-08 23:26:06

标签: android shell memory adb ram

我正在做一些内存测试,我在研究中遇到了procstats - 在我开始使用它之前,虽然我想在开始依赖它的数据之前完全理解所有内容。

以下是我正在尝试使用的精简文件:

CURRENT STATS:
* com.samsung.android.providers.context / u0a6:
       TOTAL: 100% (4.2MB-4.2MB-4.2MB/3.3MB-3.3MB-3.3MB over 1)
       Service: 100% (4.2MB-4.2MB-4.2MB/3.3MB-3.3MB-3.3MB over 1)
* com.sec.android.inputmethod / 1000:
       TOTAL: 100% (28MB-28MB-28MB/27MB-27MB-27MB over 2)
      Imp Fg: 100% (28MB-28MB-28MB/27MB-27MB-27MB over 2)
* com.google.android.googlequicksearchbox / u0a54:
       TOTAL: 0.05%
       Imp Bg: 0.05%
      (Cached): 100% (4.8MB-4.9MB-5.0MB/3.2MB-3.3MB-3.4MB over 2)
* com.google.android.talk / u0a98:
       TOTAL: 0.03%
       Imp Bg: 0.03%
       Receiver: 0.00%
       (Cached): 100% (8.8MB-8.8MB-8.8MB/7.4MB-7.4MB-7.4MB over 2)
      (Home): 100% (20MB-20MB-20MB/18MB-18MB-18MB over 1)
Run time Stats:

SOff/Norm: +24m36s393ms (running)
 TOTAL: +24m36s393ms
      Start time: 2014-12-08 14:22:50
      Total elapsed time: +24m36s508ms (partial) libdvm.so chromeview

以下是问题:

  1. "超过1" /"超过2"意思?
  2. Service,Imp Bg,Receiver和Imp Fg之间有什么区别?
  3. 为什么每个总清单都没有使用RAM(例如com.google.android.talk)
  4. 100%是什么意思,什么是.03%意味着什么?
  5. 为什么只有一些人有(缓存)/(Home)?
  6. 100%(缓存)/(Home)是什么意思?
  7. "(部分)libdvm.so chromeview"意思?
  8. 最后,我假设(4.8MB-4.9MB-5.0MB / 3.2MB-3.3MB-3.4MB)是正确的(低pss - avg pss - 高pss /低uss - avg uss - 高uss) ?
  9. 如果有人能对此有所了解,将不胜感激。感谢。

    作为一个提醒,我已经阅读了这两个链接.... android-developers.blogspot.com/2014/01/和android.googlesource.com/platform/frameworks/base/+/master / core / ....以及其他一些页面 - 这些仍然是我留下的问题。关于所有8个问题,有谁可以详细介绍?

    修改

    所以我一直在尝试比较procstats和meminfo之间的数字,它实际上只会增加更多问题。

    以下是procstats的摘录

    CURRENT STATS:
      * com.dropbox.android:crash_uploader / u0a87:
         TOTAL: 100% (4.8MB-4.8MB-4.9MB/3.9MB-3.9MB-3.9MB over 6)
         Service: 100% (4.8MB-4.8MB-4.9MB/3.9MB-3.9MB-3.9MB over 6)
      * com.mobileposse.client / u0a22:
         TOTAL: 0.16%
         Service: 0.13%
        Receiver: 0.03%
        (Cached): 98% (7.2MB-8.4MB-9.3MB/6.1MB-7.2MB-8.1MB over 7)
      * com.android.chrome / u0a79:
         TOTAL: 0.01%
        Receiver: 0.01%
        (Cached): 86% (5.2MB-5.2MB-5.4MB/4.4MB-4.4MB-4.4MB over 3)
    

    以下是meminfo的摘录

    Total PSS by process:
     5524 kB: com.android.chrome (pid 7334)
     4969 kB: com.dropbox.android:crash_uploader (pid 5617)
    

    现在dropbox很有意义,我想说80%的流程都遵循dropbox的主导,meminfo和pocstats之间有匹配的数字。我没有得到 - 为什么chrome在procstats中没有任何总数但是在meminfo中列出,为什么mobileposse在procstats中具有比chrome更高的统计数据但是没有在meminfo中列出?

2 个答案:

答案 0 :(得分:2)

  

百分比告诉您每个流程在各个关键状态中花费了多少时间。内存编号会告诉您这些状态下的内存样本,如minPss-avgPss-maxPss / minUss-avgUss-maxUss。 procstats工具还有许多命令行选项来控制其输出 - 使用adb shell dumpsys procstats -h查看可用选项列表。

     

将来自procstats的原始数据与我们之前看到的数据的可视化进行比较,我们可以看到它仅显示来自状态子集的进程运行数据:Imp Fg,Imp Bg,Service,Service Rs和Receiver。这些是流程在后台主动运行的情况,只要它需要完成它正在进行的工作。在设备内存使用方面,这些过程状态往往会造成最大的麻烦:在后台运行的应用程序从其他东西中获取RAM。

引自:http://android-developers.blogspot.be/2014/01/process-stats-understanding-how-your.html或许您可以使用procstats -hman procstats找到更多信息。

答案 1 :(得分:2)

看看Alex P.链接的sources。你可以在那里找到一些问题的答案:

  

“超过1”/“超过2”是什么意思?

这是取样的数量。

  

Service,Imp Bg,Receiver和Imp Fg之间有什么区别?

它们不同states(Imp Bg表示重要背景,Imp Fg重要前景)

  

为什么不是每个人都列出RAM使用情况(例如com.google.android.talk)

     

100%是什么意思,什么是.03%意味着什么?

这些应用程序运行的时间占百分之百。

  

为什么只有一些人有(缓存)/(主页)?

     

100%(缓存)/(Home)是什么意思?

     

“(部分)libdvm.so chromeview”是什么意思?

     

最后,我假设(4.8MB-4.9MB-5.0MB / 3.2MB-3.3MB-3.4MB)是正确的(低pss - avg pss - 高pss /低uss - avg uss - 高uss) ?

是的,您是对的,documentation将其描述为minPss-avgPss-maxPss / minUss-avgUss-maxUss