记一次解决谷歌浏览器Google Chrome Helper占用过高cpu问题
1. 问题现象
有时候发现mac风扇响的厉害,于是我检查了mac系统的活动监视器,发现Google Chrome Helper占用99%的CPU。
通常来说Chrome如果占用过高的内存,这并不是什么问题,毕竟Chrome的性能以及易用性是建立在占用很多内存的基础上的。但是无论什么程序,持续的占用超过80%的cpu,都是极不正常的
。大多数程序都是占用维持在低于10%的CPU。
活动监视器指出问题出现在Chrome浏览器。那么问题可以再次细分为三块。
- Chrome系统自身问题
- 一些插件,例如flash插件,扩展插件
- 网页程序js出现的问题
2. 从任务管理器着手
其实Chrome浏览器自身也是有任务管理器的,一般来说windows版chrome按住shift+esc
就会调出任务管理器窗口。mac版调出任务管理器没有快捷,只能通过Window > Task Manager
调出。
调出任务管理器后,发现一个标签页,CPU占用率达到99%, 那就说明,应该是这个标签页中存在持续占用大量CPU计算的程序。
最后找到这个页面,发现该页面背景图是一种动态粒子图。就是基于particles.js做的。我想,终于找到你了。
于是我把这个动态图的相关js代码给注释掉,电脑的风扇也终于变得安静了。
3. 问题总结
问题解决的总结:解决问题的方法时很简单的,基于一个现象,找到一个原因,基于这个原因再找到一个现象,然后一步一步缩小问题范围,逼近最终原因。
机器CPU过高,一般都是可以从任务管理器着手解决。系统的任务管理器可以监控各个程序占用的CPU是否正常,通常程序自身也是有任务管理的。
像谷歌浏览器这种软件,几乎本身就是一个操作系统,所以说它的任务管理器也是必不可少的。Chrome浏览器再带的任务管理器可以告诉你几个关键信息。
- 任务占用的
内存
- 任务占用的
CPU
- 任务占用的
网络流量
大小
如果你一打开谷歌浏览器,你的电脑风扇就拼命转,那你最好打开谷歌浏览器的任务管理器看看。
4. 关于动态背景图的思考
动态背景图往往都会给人很酷炫的感觉,但是这种背景图的制作并不是很复杂,如果你使用particles.js来制作,制作一些动态背景图只需要几行代码就可以搞定。但是这种酷炫的背后,CPU也在承受着压力。
particles.js提供的demo效果图,在Chrome中CPU会被提高到100%。
也有几家使用动态背景图的官网。我记得知乎以前就用过动态背景图,但是现在找不到了。另外一个使用动态背景图的是daocloud, CPU也是会在首页飙升到50%。
所谓:强招必自损
,动态背景图在给人以炫酷科技感的同时,也需要权衡这种技术对客户计算机的压力。
另外,不要小看JavaScript, 它也可能引起大问题
- java 一次CPU占用过高问题的排查及解决
- Linux下Chrome字体设置和启用OpenGL、GPU显卡加速解决Flash CPU占用过高的问题
- Linux下Chrome字体设置和启用OpenGL、GPU显卡加速解决Flash CPU占用过高的问题
- Linux x64 下 Matlab R2013a 300 kb 脚本文件调试的 CPU 占用过高问题的解决办法
- 解决Fedora 11下PulseAudio声音不能长时间稳定及占用CPU过高的问题
- chrome同步书签cpu占用率过高问题解决
- java实战CPU占用过高问题的排查及解决
- 关于mysql占用CPU过高,问题解决
- 360浏览器登录新浪微博图标显示为字母及占用CPU过高问题的解决
- 程序占用cpu过高问题解决
- win10 解决 WMI Provider Host 占用CPU过高问题
- win10 解决 WMI Provider Host 占用CPU过高问题
- 再记一次w3wp占用CPU过高的解决过程(Dictionary和线程安全)
- centos7 foxit reader占用CPU过高问题解决方案
- 我的计算机问题解决之:NT Kernel & System 进程CPU占用过高(开机便保持在50%)
- 黄聪:MYSQL使服务器内存CPU占用过高问题的分析及解决方法
- 64位Windows7系统中Svchost占用内存跟CPU过高的问题解决办法
- 记一次tomcat进程cpu占用过高的问题排查记录
- 为什么Win7下鼠标唤醒和视频加速CPU占用过高?如何解决问题
- linux下Bochs模拟占用CPU过高问题解决