用 JavaScript 检测 CPU 占比(转)

CPU 占比探测

通过 setTimeout 的方式探测 CPU 已经不是秘密,去年腾讯的朋友在 Velocity 上分享过,北京有朋友还通过这个原理,几年前就实现了网页游戏中动画等耗时操作的自动调节。原理很简单:

var data = [] var t  function pulse() {   t && data.push(Date.now() - t)   t = Date.now()   setTimeout(pulse, 50) }  pulse() 

就是每隔 50ms 打一下点。理想情况下,data 的值应该是

data = [50, 50, 50, 50, ...] 

但实际情况,data 会是

data = [51, 52, 50, 52, ...] 

当 CPU 比较忙时,data 的数据变成

data = [81, 102, 90, 62, ...] 

即 CPU 越忙,data 数据项会越大。这样,记录一系列 data 值,就可以绘制出 CPU 占比趋势图,和通过任务管理器看到的 CPU 趋势图非常接近。

上面只是原理说明,实际情况没这么简单。但很明显,通过这么一个简单的规律,就能实现用纯 JavaScript 来探测 CPU 占比了。

转自:https://github.com/lifesinger/lifesinger.github.com/issues/122 

posted @ 2013-03-28 23:10  形随心动  阅读(342)  评论(0编辑  收藏  举报