CPU使用率过高及优化方法
android系统中CPU使用率这一块在性能优化中也是非常重要的一个环节,接下来说一下我自己做优化的一些心得
一、问题的由来
近期做了一个项目,代码量比较少,但是CPU使用率达到18%-20%
如图红色边框里面是该应用的CPU使用率百分比 ( 这里包名做了涂鸦处理)
测试方法可以借助性能优化工具或者死办法注释掉认为可能导致问题的代码,然后再盘查;一般来说手机应用功能比较多的,CPU使用率达到30-40%都是正常
后来通过查阅资料以及综合分析,导致CPU消耗过高的一些因素:
1.应用出现大量的图片处理以及加载或者大量的音频、视频处理跟加载。PS:大量的图片、音频、视频处理最好使用JNI技术来实现2.socket线程长时间运转,没有休息,也没有关闭3.使用线程池代替New一个个的线程4.自定义view,特别是Ondraw onmeasure 然后带有动画的,都会严重消耗性能,需要重点优化或者寻找替代方案5.布局太深或者过度绘制,参考[性能优化——布局优化](http://blog.csdn.net/dhd040805/article/details/54288813)
到这一步,我的优化基本完成了,效果图如下
从之前的百分之20到现在的百分之2~~基本算是成功了吧
另外查看CPU使用率的办法参考这里
CPU使用率过高及优化方法相关推荐
- Linux下CPU使用率过高的排查方法
在 Linux 系统下,使用 top 命令查看 CPU 使用情况. %Cpu(s): 0.3 us, 0.1 sy, 0.0 ni, 99.6 id, 0.0 wa, 0.0 hi, 0.0 si, ...
- mysql的cpu使用率突然增高_mysql cpu使用率过高解决方法
mysql cpu使用率过高解决方法 1 mysql查看正在运行的语句 并且查看运行最多的mysql语句 MySQL 打开 general log 后,所有的查询语句都会记录在 general log ...
- 【linux性能优化】CPU使用率过高分析
最常用什么指标来描述系统的 CPU 性能呢? 可能不是平均负载,也不是 CPU上下文切换,而是另一个更直观的指标CPU使用率 CPU使用率是单位时间内CPU使用情况的统计,以百分比的方式展示 那么,作 ...
- CPU使用率过高的原因及解决方法
常见的CPU使用率过高可不是职场CPU哦,而是电脑的中央处理器,CPU作为计算机系统重要的运算和控制核心,可谓是"很忙"的存在.在我们日常使用电脑设备时,由于打开的软件.游戏.网页 ...
- linux主机sys使用率忽高忽低,cpu使用率忽高忽低的原因和解决方法
小编最近经常听说有的 人电脑cpu使用率老是忽高忽低,也不知道怎么回事虽然没怎么影响使用但是这无疑是一个潜在的隐患等到这个隐患爆发了对电脑的伤害可想而知,今天小编就来和大家说说cpu使用率忽高忽低的原 ...
- Linux CPU性能优化 —— CPU使用率及高CPU使用率排查
文章目录 CPU使用率的定义 查看CPU使用率:top和pidstat 排查高CPU使用率:pref 参考文献 写在前面: 由于之前在开发分布式系统中由于云服务器性能原因,导致系统总是断连等错误.但是 ...
- 06 | 案例篇:系统的 CPU 使用率很高,但为啥却找不到高 CPU 的应用?
上一节我讲了 CPU 使用率是什么,并通过一个案例教你使用 top.vmstat.pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题.不过 ...
- 4 系统的 CPU 使用率很高,但为啥却找不到高 CPU的应用?
上一节讲了 CPU 使用率是什么,并通过一个案例教你使用 top.vmstat.pidstat 等工具,排查高 CPU 使用率的进程,然后再使用 perf top 工具,定位应用内部函数的问题.不过就 ...
- mysql数据库占用太多的CPU_mysql数据库CPU使用率过高解决方案
压测时,经常会出现mysql数据库CPU使用率过高,下面介绍一下简单的问题定位方法: 1.确定是否有慢sql语句: 1)登录数据库服务器,连接数据库:执行命令:mysql -uroot -p 密码 2 ...
最新文章
- python: ImportError:DLL load failed 解决方法。
- Oracle的连接与会话
- ISE简介及其下载 安装 和谐 与 卸载
- 如何快速在CentOS搭建光盘【永久搭载光盘】
- python爬取淘宝数据魔方_淘宝数据魔方技术架构解析
- 2020年Java学习计划祝大家新年快乐
- 罗技无线网卡linux,linux(debian)安装USB无线网卡(tp-link TL-WN725N rtl8188eu )
- C++ char,int 之间的相互转换
- linux工作技能第二发:vi
- C-Free 3.5.2 注册码
- 手机上PDF转换成JPG图片超简单的方法
- asp mysql rs.recordcount_asp 中rs.fields.count,rs.recordcount代表什么意思
- CTO(技术总监)平时都在做些什么?
- i人事CTO王景飞:i人事+计算巢,协同赋能HR业务
- C语言中的结构体,结构体中数组初始化与赋值
- 获取顺序栈的栈顶元素
- Java 之父:找Bug最浪费时间,现在不是开源的黄金时代
- “舒适区”的科学原理:为什么走出舒适区这么难?
- Activity与Fragment,以及Fragment与Fragment之间的数据通讯
- 智能CAN总线隔离中继器集线器CANBridge-300/400