一、CPU使用率原理

android系统内核是基于linux,在linux系统下 CPU 利用率分为用户态、系统态、空闲态

  • 用户态:表示CPU处于用户态执行的时间

  • 系统态:系统内核执行的时间

  • 空闲态:空闲系统进程执行的时间

CPU利用率=CPU执行非系统空闲进程的时间/CPU总的执行时间。这里的时间含义如下:

  • HZ:  Linux 核心每隔固定周期会发出 timer interrupt(时钟中断),HZ是用来定义每一秒有几次时钟中断。例如 HZ 为1000,就代表每秒有1000 次时钟中断。

  • Jiffies: 在Linux的内核中,有一个全局变量:Jiffies。Jiffies代表时间。它的单位随硬件平台的不同而不同。Jiffies的单位就是1/HZ

  • Intel 平台Jiffies的单位是1/100秒,这就是系统所能分辨的最小时间间隔。每个CPU时间片,Jiffies都要加1

  • CPU利用率计算公式:CPU利用率=(用户态Jiffies + 系统态 Jiffies)/ 总Jiffies

二、CPU测试方法

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

>adb shell

>top --help

-m  最多显示多少个进程

-n 刷新次数

-d  刷新间隔时间(默认5秒)

-s 按哪列排序

  • adb shell top命令

> adb shell top

第一组数据的含义:

400%cpu: CPU总量

33%user: 用户空间占用CPU的百分比

0%nice: 改变过优先级的进程占用cpu的百分比

30%sys   内核空间占用cpu的百分比

337%idle  空闲cpu百分比

0%iow   IO等待占用cpu的百分比

0%irq   硬中断(Hardware IRQ)占用cpu的百分比

0%sirq  软中(Software Interrupts)占用CPU的百分比

第二组数据的含义:

PID   进程id

USER: 进程所有者

PR:进程优先级

NI: nice值。负值表示高优先级,正值表示低优先级

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秒

  • adb shell dumpsys cpuinfo [pkg or pid]

​​​​​​​

该程序占用20%,其中9.8%是user,10%是kernel(内核)

查看单个应用的cpu占用情况:

APP_CPU使用率相关推荐

  1. java 正则 cpu 100_这六个原因真的可以使Java应用程序的CPU使用率飙升到100%吗?...

    点击上方的"代码农户的冥想记录",然后选择"设为明星" 高质量文章,及时交付 问题 1. 无限while循环会导致CPU使用率飙升吗? 2.经常使用Young ...

  2. 美国 2006 年机器学习和知识发现年会数据挖掘使用率较高算法排名

    在美国 2006 年机器学习和知识发现年会,数据挖掘(Data Mining)哪些算法使用率较高?现场投票结果可以给我们一点线索.数据挖掘有十大经典算法为:C4.5,K-Means,SVM,Aprio ...

  3. java linux cpu 多核 负载不均匀,系统CPU负载过高、CPU使用率不高的问题

    (1).问题 线上Tomcat服务器CPU的负载非常高,但是CPU使用率正常,如图: (2).问题排查 1.首先查看是哪些进程的CPU占用率最高(如下可以看到详细的路径) ps -aux --sort ...

  4. zabbix自动发现oracle表空间并监控其使用率

    监控需求 Oracle表空间使用率实时监控,当表空间使用率达到95%时触发告警机制.Oracle表空间分为系统默认表空间和用户创建的表空间,而表空间又有自动扩展和非自动扩展两种类型,用户(DBA)在创 ...

  5. 编程语言使用率的统计与简单分析

    这里有一个统计: http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html 2011年的前几名依次是:Java, C, C++, ...

  6. WPF 动态模拟CPU 使用率曲线图

    在工作中经常会遇到需要将一组数据绘制成曲线图的情况,最简单的方法是将数据导入Excel,然后使用绘图功能手动生成曲线图.但是如果基础数据频繁更改,则手动创建图形可能会变得枯燥乏味.本篇将利用Dynam ...

  7. java 分配cpu使用率_Java-JVM-CPU使用率达到100%

    我有一个Java程序,该程序有时会同时变成100%CPU使用率和睡眠状态.该程序不是多线程的. 环顾四周,我认为最可能的原因是我对垃圾收集运行Java解释器的方式中的错误或某些不匹配.我只能认为100 ...

  8. win10句柄数比win7多 cpu占用率 高_Win10更新再出问题!CPU使用率高+损坏SSD,修复方法来了...

    Win10的系统更新,真的是跟拆盲盒一样时刻面临着"惊喜". 毕竟,win10系统的更新出错,都不是一天两天的事情了,完全让人吃不消. 上次win10 2004号称最稳定的版本,乐 ...

  9. java cms cpu占用率_cpu使用率过高和jvm old占用过高排查过程

    今天断断续续的收到管理平台的异常报警,cpu占用过高和jvm old占用过高,这个时候赶紧去排查原因,下面记录了我的排查过程,可能里面还有不正确的地方,欢迎各位大佬指正,也欢迎大家关于类似的案例一起交 ...

最新文章

  1. MySQL查看及修改字段的字符集
  2. 或许每条喵咪上辈子都是陨落的码农
  3. SVN 版本库管理实践
  4. python整数转换字符串_Python | 将字符串转换为整数列表
  5. IDEA:vue中缺少vue-quill-editor富文本插件
  6. 出现“cannot identify image file /.DS_Store'”问题解决的办法
  7. mkdir 与mkdir -p 区别
  8. ssh scp不用输入密码
  9. 深入理解深度学习中的【卷积】和 feature map
  10. HTTP协议基本原理简介(一)
  11. 一文概述深度学习中的正则化(含Python代码)
  12. bzoj1045题解
  13. python图书馆抢座_Python-Requests模拟登录-实现图书馆座位自动预约
  14. Jmeter-使用http proxy代理录制脚本
  15. 学习 Elasticsearch 的相关使用
  16. win10系统文件拖拽卡顿_win10电脑中鼠标拖动窗口有延迟如何解决
  17. python三年a班的成绩_Python题集:2019春Python程序设计选修课习题笔记
  18. c语言字符串的题库,C考试系统题库含答案程序题
  19. 中国网络伪黑客现象初探
  20. 全网舆情大数据接口学习

热门文章

  1. Transformer总结和梳理
  2. 零基础如何快速入门学python?python全套学习路线总结
  3. 《鸟哥的Linux 私房菜 基础学习篇(第三版)》——1.2 Torvalds的Linux开发
  4. java jsonshema2pojo
  5. 同为Android手机制造商,为何HTC拼不过三星
  6. JAVA PECS法则
  7. 便捷的前端绘图框架:two.js初探
  8. Epuck pic capture
  9. Golang环境配置步骤
  10. CFW_DEMO 屏幕上添加 图片、按钮、文本编辑、HTML