zoukankan      html  css  js  c++  java
  • adb shell top 使用


    adb shell top
    top命令提供了实时的对系统处理器的状态监视.它将显示系统中CPU最“敏感”的任务列表.该命令可以按CPU使用.内存使用和执行时间对任务进行排序.
    1)top 用法
    >adb shell top -h
    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 sort by (cpu,vss,rss,thr). 按哪列排序
        -t      Show threads instead of processes. 显示线程信息而不是进程
        -h      Display this help screen.  显示帮助文档

    2)adb shell top
    > adb shell top

    User 13%, System 5%, IOW 0%, IRQ 0%
    User 85 + Nice 0 + Sys 37 + Idle 509 + IOW 0 + IRQ 0 + SIRQ 0 = 631

      PID PR CPU% S  #THR     VSS     RSS PCY UID      Name
     0  13% S    56 423416K  88160K  fg u0_a92   com.tmall.wireless
     1   2% R     1   1232K    536K     root     top
     0   1% S    46 341712K  40872K  fg u0_a90   com.wandoujia.phoenix2.usbproxy
     1   1% S    31 319976K  33284K  fg u0_a74   com.android.Chinpower
     0   1% S    32  67320K  20552K  fg system   /system/bin/surfaceflinger
     0   1% S   112 445876K  80304K  fg system   system_server
        ...
     0   0% S     1      0K      0K     root     watchdog/0
     1   0% S     1      0K      0K     root     khelper
     1   0% S     1      0K      0K     root     suspend_sys_syn
     1   0% S     1      0K      0K     root     suspend

    第一组数据的含义:

    User  处于用户态的运行时间,不包含优先值为负进程
    Nice  优先值为负的进程所占用的CPU时间
    Sys   处于核心态的运行时间
    Idle  除IO等待时间以外的其它等待时间
    IOW   IO等待时间
    IRQ   硬中断时间
    SIRQ  软中断时间

    第二组数据的含义:

    PID   进程id
    PR    优先级
    CPU%  当前瞬时CPU占用率
    S     进程状态:D=不可中断的睡眠状态, R=运行, S=睡眠, T=跟踪/停止, Z=僵尸进程
    #THR  程序当前所用的线程数
    VSS   Virtual Set Size  虚拟耗用内存(包含共享库占用的内存)
    RSS   Resident Set Size 实际使用物理内存(包含共享库占用的内存)
    PCY   调度策略优先级,SP_BACKGROUND/SP_FOREGROUND
    UID   进程所有者的用户id
    Name  进程的名称

    具体信息可以查看源代码中: xxsystemcore oolbox op.c

    >adb shell top  | findstr tmall > d:cpu.txt   
    打印 top命令,并查找 包含 tmall的命令行,输出至 d:cpu.txt

    result:

    22137  1   0% S    10 304728K  28900K  bg u0_a92   com.tmall.wireless:push

    22205  0   0% S    15 322944K  38236K  bg u0_a92   com.tmall.wireless

    22205  1  27% R    34 345304K  49396K  fg u0_a92   com.tmall.wireless

    在 ubuntu 系统输入top -h,可以看到 top 的使用方法。
    omj@pc-ubuntu:~$top -h
    procps-ng version 3.3.9
    Usage:
    top -hv | -bcHiOSs -d secs -n max -u|U user -p pid(s) -o field -w [cols]
     
    这里我们主要是谈 top 指令在 android 系统下的使用,所以首先要用 usb 线连接PC和设备,然后进入android设备的 shell,查看 top 指令的相关用法。
     
    查看android设备是否被PC机识别:
    omj@pc-ubuntu:~$adb devices
    List of devices attached
    d111a8ac device
     
    进入android设备的shell:
    omj@pc-ubuntu:~$adb shell
    root@msm8610:/ #
    查看 top 指令的帮助菜单:
    root@msm8610:/ #top -h
     
    从帮助菜单可以看出,PC级别的系统的 top 指令和 android 设备的 top 指令的使用方法还是有点区别的。

    top指令查看进程资源:
    root@msm8610:/ #top
    每隔 3s 更新一次显示:
    root@msm8610:/ #top -d 3
    按cpu大小列出5个进程列表:
    root@msm8610:/ #top -m 5
    根据进程的名字使用 grep 指令过滤输出 "com.hcb.parking" 进程的信息(图中实际上是每隔 1s 输出一次信息):
    root@msm8610:/ #top -d 1 | grep "com.hcb.parking"
    查看"com.hcb.parking" 应用(或者说"com.hcb.parking" 进程)中所有线程的CPU等信息:
    root@msm8610:/ #top -d 1 -t | grep "com.hcb.parking"
     
    每间隔 3s 将 "com.hcb.parking" 进程的CPU 信息保存到文件:
    root@msm8610:/ #top -d 3 | grep "com.hcb.parking" > /data/topinfo.txt &

    从android设备中将上一步保存的 topinfo.txt 日志信息复制出来(该命令是在退出adb shell 之后执行的):
    omj@pc-ubuntu:~/work$ adb pull /data/topinfo.txt .

    原文:https://www.cnblogs.com/111testing/p/8911993.html

  • 相关阅读:
    小波变换的引入,通俗易懂
    Leetcode 437. Path Sum III
    Leetcode 113. Path Sum II
    Leetcode 112 Path Sum
    Leetcode 520 Detect Capital
    Leetcode 443 String Compression
    Leetcode 38 Count and Say
    python中的生成器(generator)总结
    python的random模块及加权随机算法的python实现
    leetcode 24. Swap Nodes in Pairs(链表)
  • 原文地址:https://www.cnblogs.com/lisa2016/p/12751070.html
Copyright © 2011-2022 走看看