• Performance(CPU/MEM) Monitoring with /proc in Android


    /proc/stat

    记录了CPU使用的数据,比如CPU在用户态、nice和内核态的时间,其单位是USER_HZ or Jiffies (1/100 seconds)

    > adb shell cat /proc/stat

    cpu  18485 385 17818 1731820 10138 10 244 0 0 0
    cpu0 16059 283 16775 847113 8982 10 243 0 0 0
    intr 742034 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 335460 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4502 271 0 12616 0 0 0 0 0 0 0 0 0 0 0 0 0 0 474 4 0 0 0 0 0 0 0 0 0 13652 16 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27 0 13225 0 0 0 0 4039 0 1094 0 1655 0 0 0 0 1 956 0 0 0 0 0 0 0 0 0 42918 99426 11516 0 84206 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 835 0 0 0 0 0 2312 0 6132 0 0 0 530 0 0 0 0 0 0 0 47097 0 0 0 0 0 0 0 0 0 0 1
    0 0 0 0 0 0 0 0 0 0 0 0 0 5836 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 27609 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 9132 0 0 0 2685 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 7048 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 3 0 0 0 269 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 6412 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 3 0 58 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
    ctxt 2751051
    btime 1330237572
    processes 2407
    procs_running 1
    procs_blocked 0
    softirq 641387 215 343387 12 699 10 10 61002 2682 804 232566

    /proc/%d/stat

    记录了某个进程的CPU和Memory的信息。其中Memory的单位是

    >adb shell cat /proc/2416/stat
    2416 (test.simplechat) S 131 131 0 0 -1 4194624 1080685 0 138 0 17038 3175 0 0 20 0 32 0 927564 257974272[VSS, byte] 17879[RSS, page,should be 4k] 4294967295 1 1 0 0 0 0 4612 4096 34024 4294967295 0 0 17 0 0 0 0 0 0 51

    /proc/%d/task

    记录在某个进程下面各个线程的id, 每个线程会创建一个文件夹,在下面可以看到更多关于这个线程的信息。

    >adb shell ls /proc/2416/task
    2416
    2417
    2418
    2419
    2420
    2421
    2422
    2423
    2424
    2425
    2426

    /proc/%d/statm
    提供某个进城的memory信息,其单位是page

    >adb shell cat /proc/2416/statm
    47304 9139 4779 1 0 5643 0

    VSS and RSS

    VSS indicates how much virtual memory is associated with the process, Resident Set Size indicates how many physical pages are associated with the process.


    VSS is generally meaningless on Android.  If I memory-map a 1MB file, VSS grows by 1MB, but I haven't used any resources (other than entries in a virtual mapping table).


    RSS is partially meaningless on Android, because it doesn't identify pages shared between multiple processes.  If process A has an RSS of 2MB, and process B has an RSS of 2MB, it's possible that there are 4MB of physical pages occupied.  It's also possible that there are only 2MB of physical pages occupied.

    PSS and USS

    USS is the count of pages that are unique to that process.  PSS is RSS reduced by a percentage according to how many processes share the physical pages.  For example, if there are three processes sharing the same 6MB region, each process will adjust their RSS count by 6MB, but only add 2MB to their PSS.

    Ref:

    1. http://www.linuxhowtos.org/System/procstat.htm

    2. top.c

    3. http://homepages.cwi.nl/~aeb/linux/man2html/man5/proc.5.html

    4. procrank

    5. http://elinux.org/Android_Memory_Usage

    6. http://hi.baidu.com/donghaozheng/blog/item/235da701ab70f60a1c95832e.html

  • 相关阅读:
    JDK安装,环境配置
    XSS攻击测试代码
    css3 input边框蓝光特效
    PDFobject插件使用,PDF在线查看插件
    网页中嵌入可以点击“运行代码”执行html/css/js代码
    SmohanTimeLine.js 酷炫的时间轴效果
    java进行文件上传,带进度条
    javascript读取xml文件
    C# 动态类型与动态编译简介
    Mac 命令行美化
  • 原文地址:https://www.cnblogs.com/whyandinside/p/2368852.html
Copyright © 2020-2023  润新知