APP性能及安全方面的学习(二)

1. CPU使用率

  CPU执行非系统空闲进程的时间 / CPU总的执行时间

  CPU使用率 = (用户态Jiffies + 系统态Jiffies)/总Jiffies

  Jiffies代表时间,单位是1/HZ

2. CPU测试方法

  adb命令

    使用top命令查看哪些进程是 CPU的主要消耗者

    adb shell top -h 

      使用findstr命令获取某个应用的CPU占用率

    adb shell top -m 100 -n 1 -d 1 -s cpu | findstr 进程名称(com.xxx.xxx)

      显示100进程数,刷新1次,间隔1秒,按cpu使用排序显示

Usage:top[-m max_procs][-n iterations][-d delay][-s sort_column][-t][-h]
-m num Maximum number of processes to display.  最多显示多少个进程
-n num Updates to show before exiting.  刷新次数
-d num Seconds to wait between updates.  刷新间隔时间(默认5秒)
-s col Column to sortby(cpu,vss,rss,thr).  按哪列排序
-t Show threads instead of processes.  显示线程信息而不是进程
-h Display this help screen.  显示帮助文档

 

top 命令的参数

   参数含义

  第一行:

    Tasks:整体的统计信息

      202 total:所有启动的进程数

      1 running:正在运行的进程数

      201 sleeping: 挂起的进程数

      0 stoped: 停止的进程数

      0 zombie:僵尸进程数

  第二行:

    Mem:内存统计信息

      物理内存总数

      已使用的物理内存

      空闲物理内存

      内核缓存内存量

  第三行:

    Swap:虚拟内存统计信息

      交换区总量

      已使用交互区总量

      空闲交换区总量

      缓冲的交换区总量

  第四行:

    %cpu:用户空间占用CPU百分比

    %user:处于用户态的运行时间,不包含优先值为负进程

    %nice: 内核空间占用CPU百分比 

    %sys:用户空间内改变优先级的进程占用CPU百分比

    %idle:空闲CPU百分比

    %iow:等待输入输出CPU时间百分比

    %irq:CPU服务于硬件中断所耗费的时间总额

    %sirq:CPU服务软件中断所耗费的时间总额

    %host:  Steal Time

   实际内存计算: free + (buffers + cached)

   程序已用内存数:used – (buffers + cached)

 

  还有:

    User:处于用户态的运行时间,不包含优先值为负进程

    Nice:优先值为负的进程所占用的cpu时间

    Sys:处于核心态的运行时间

    idle:除IO等待时间以外的其他等待时间

    iow:IO等待时间

    irq:硬件中断时间

 

    PID:进程ID

    USER:进程所有者

    PR:优先级

    NI:nice值,实时进程的nice值为0,普通进程的nice值范围为-20~19

    VIRT:虚拟内存  进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES

    RES:常驻内存  进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA

    SHR:共享内存  单位kb

    S:进程状态 (D=不可中断的睡眠状态,R=运行,S=睡眠,T=跟踪/停止,Z=僵尸进程)

    %CPU: 上次更新到现在的CPU时间占用百分比

    %MEM: 进程使用的物理内存百分比

    TIME+:进程使用的CPU时间总计,单位1/100秒

    ARGS:进程参数信息

 

posted @ 2021-04-15 23:25  金鑫金  阅读(71)  评论(0编辑  收藏  举报