android - 更深入的解释 procstats for Android

标签 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% 是什么意思,0.03% 是什么意思?
  5. 为什么只有一些有(缓存)/(主页)?
  6. 100%(缓存)/(主页)是什么意思?
  7. “(部分)libdvm.so chromeview”是什么意思?
  8. 最后,我是否正确假设 (4.8MB-4.9MB-5.0MB/3.2MB-3.3MB-3.4MB) 是 (low pss - avg pss - high pss/low uss - avg uss - high uss) ?

如果有人能对此有所了解,将不胜感激。谢谢。

作为提醒,我已经阅读了这两个链接.... 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 中列出?

最佳答案

看看sources由 Alex P 链接。您可以在此处找到一些问题的答案:

What does "over 1" / "over 2" mean?

这是采集的样本数。

What is the difference between Service, Imp Bg, Receiver, and Imp Fg?

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

Why doesn't every total list the RAM usage (com.google.android.talk for example)

What does 100% mean and what does .03% mean?

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

Why do only some have (Cached)/(Home)?

What does 100% (Cached)/(Home) mean?

What does "(partial) libdvm.so chromeview" mean?

Lastly, am I correct in assuming that (4.8MB-4.9MB-5.0MB/3.2MB-3.3MB-3.4MB) is (low pss - avg pss - high pss / low uss - avg uss - high uss)?

是的,你是对的,documentation将它们描述为 minPss-avgPss-maxPss/minUss-avgUss-maxUss

关于android - 更深入的解释 procstats for Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27368911/

相关文章:

java - Android 在 onCreate() 之外使用 javascript/java 桥设置软输入模式

shell - 找到: chown: Argument list too long

python - rabbitmq内存控制,队列已满,未分页。连接挂起

循环中的 C++ 对象引用

java - volley json 数组只获取最后一个元素

android - 无法启动虚拟设备详细信息: failed to create framebuffer image (error: 15)

java - 向 Android 电报源代码添加新语言

bash - 检查 stdout 或 stderr

bash - 使用括号对表达式进行分组以防万一

java - 如何确定哪个方法产生最多垃圾