JavaScript获取当前cpu使用率的方法


Posted in Javascript onDecember 15, 2015

本文实例讲述了JavaScript获取当前cpu使用率的方法。分享给大家供大家参考,具体如下:

想获取当前系统cpu的使用率,如果允许使用hta,可以使用以下的代码获取当前cpu的使用率(较为精确)

setInterval(function() {
 var locator=new ActiveXObject ("WbemScripting.SWbemLocator");
 var service=locator.ConnectServer(".");
 var cpu=new Enumerator (service.ExecQuery("SELECT * FROM Win32_Processor")).item();
 document.title = cpu.LoadPercentage;
}, 1000);

如果不允许使用上面的方法,在正常的网页中是否有更合适的方法进行粗略的估算?

思路就是用一个定时器,假设间隔执行时间为500ms,当调用它时,判断从开始计时到本次执行所用时间,如果两者之差 == 500 则基本上可以认定为比较正常,如果 > 500+ 则针对不同的值来判定cpu的繁忙状况(因为不同的机器,CPU处理能力不太一样,所以这个最多只是粗略的估算不完全准确,对系统的一些参数有较强的依赖性)

function cpuSimulator() {
 var J = 100,
  getNow = function() {
   return new Date().getTime();
  };
 !(function() {
  var I = document.createElement("div"),
   s = 50,
   fn = function(l) {
    l = 1;
    var now = getNow();
    var c = 1;
    while (c < J) {
     if (now > D + c*s) {
      l++;
     }
     c++;
    }
    D = getNow();
    I.innerHTML = "CPU:" + l/J * 100 + "%";
   },
   t = setInterval(fn, 500),
   D = getNow();
   I.style.cssText = "width:80px; height:20px; position:fixed !important; _position:absolute; top:10px; right:10px; border:1px solid #406c99; padding:2px; color:#f00;";
   document.body.appendChild(I);
   fn();
 })();
}

如果想判定的更为精准,那只能在定时器的执行时间和对差值的对比上进行调整了。

早在几年前ajax.com上就有人已经写出来这样的例子了。使用起来还比较简单,直接在你的需要监测的网页地址栏中输入:

javascript:(function(s){s.type='text/javascript';s.src='http://www.3site.eu/JPU/IJPU.js';document.getElementsByTagName('head')[0].appendChild(s)})(document.createElement('script'));

JavaScript获取当前cpu使用率的方法

在当前页面右上角会出现一个小图标,它分为5个等级,分别代表当前cpu高度任务的状况(过高则说明CPU使用率是比较高的,只能进行一个大概的估算,不是很精确)

这里有一个在线例子:

<html>
<head>
<script type="text/javascript" src="http://www.3site.eu/JPU/JPU.js">
<!--//
 JPU - by WebReflection
//-->
</script>
<script type="text/javascript">
<!--//
function randomString(){
 for(var i = 0, a = []; i < Math.ceil(Math.random() * 123456789); i++)
  a[i] = String.fromCharCode(Math.round(Math.random() * 50) + 30);
 return a.join("");
};
onload = function(){
 setInterval(function(){
  var div = document.getElementById("demo");
  div.appendChild(document.createTextNode(randomString()));
 }, 300);
};
//-->
</script>
<style type="text/css">
div{overflow:hidden;width:80%;height:80%;color:#FFF;}
</style>
</head>
<body>
<div id="demo"></div>
</body>
</html>

它整个IJPU的代码比较简短,可以参考一下:

/* (C) Andrea Giammarchi */
(function (J, P, U) {
 var a = 'appendChild',
  c = 'createElement',
  e = 'addEventListener',
  d = document,
  l = "load",
  w = window;
 (function () {
  var i = setInterval(function (l) {
   l = 1;
   D = new Date - D;
   if (D > 700) l++;
   if (D > 650) l++;
   if (D > 600) l++;
   if (D > 550) l++;
   s(J = l < J ? --J : l);
   D = new Date
  }, 500),
   b = d.body,
   s = function () {
    I.className = U + J
   },
   I = d[c]('p'),
   C = d[c]('link'),
   D = new Date;
  C.rel = 'stylesheet';
  C.type = 'text/css';
  C.href = P + U + '.css';
  s(b[a](C), b[a](I)); /*@cc_on setInterval(function(){I.style.top=document.body.scrollTop+"px"},50)@*/
 })()
})(5, 'http://www.3site.eu/JPU/', 'JPU');

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
Javascript attachEvent传递参数的办法
Dec 14 Javascript
解决火狐浏览器下JS setTimeout函数不兼容失效不执行的方法
Nov 14 Javascript
jquery实现九宫格大转盘抽奖
Nov 13 Javascript
JavaScript类型系统之正则表达式
Jan 05 Javascript
Javascript原型链的原理详解
Jan 05 Javascript
Canvas 制作动态进度加载水球详解及实例代码
Dec 09 Javascript
JS图片轮播与索引变色功能实例详解
Jul 06 Javascript
Vue实现active点击切换方法
Mar 16 Javascript
关于vue-router的那些事儿
May 23 Javascript
一文看懂如何简单实现节流函数和防抖函数
Sep 05 Javascript
Javascript模块化机制实现原理详解
Apr 02 Javascript
node.js +mongdb实现登录功能
Jun 18 Javascript
js简单网速测试方法完整实例
Dec 15 #Javascript
JQuery中Ajax()的data参数类型实例分析
Dec 15 #Javascript
理解javascript闭包
Dec 15 #Javascript
jQuery检测滚动条是否到达底部
Dec 15 #Javascript
js实现根据身份证号自动生成出生日期
Dec 15 #Javascript
浅析javascript的return语句
Dec 15 #Javascript
轻松学习Javascript闭包函数
Dec 15 #Javascript
You might like
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
php学习之简单计算器实现代码
2011/06/09 PHP
PHP生成随机用户名和密码的实现代码
2013/02/27 PHP
浅析memcache启动以及telnet命令详解
2013/06/28 PHP
关于PHP的curl开启问题探讨
2014/04/08 PHP
php实现的九九乘法口诀表简洁版
2014/07/28 PHP
PHP与MYSQL中UTF8编码的中文排序实例
2014/10/21 PHP
php绘图之生成饼状图的方法
2015/01/24 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
PHP使用openssl扩展实现加解密方法示例
2020/02/20 PHP
innertext , insertadjacentelement , insertadjacenthtml , insertadjacenttext 等区别
2007/06/29 Javascript
JQuery实现展开关闭层的方法
2015/02/17 Javascript
jQuery插件scroll实现无缝滚动效果
2015/04/27 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
纯JS实现弹性导航条效果
2017/03/06 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
vue router仿天猫底部导航栏功能
2017/10/18 Javascript
详解jQuery设置内容和属性
2019/04/11 jQuery
vue实现标签云效果的方法详解
2019/08/28 Javascript
Vue如何使用混合Mixins和插件开发详解
2020/02/05 Javascript
[59:53]DOTA2-DPC中国联赛 正赛 VG vs Elephant BO3 第二场 3月6日
2021/03/11 DOTA
python列表去重的二种方法
2014/02/14 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
Python Pandas 箱线图的实现
2019/07/23 Python
Pandas-Cookbook 时间戳处理方式
2019/12/07 Python
python用pip install时安装失败的一系列问题及解决方法
2020/02/24 Python
Python 面向对象静态方法、类方法、属性方法知识点小结
2020/03/09 Python
Elasticsearch py客户端库安装及使用方法解析
2020/09/14 Python
Html5移动端获奖无缝滚动动画实现示例
2018/06/25 HTML / CSS
神话般的珠宝:Ross-Simons
2020/07/13 全球购物
家长评语大全
2014/01/22 职场文书
初一学生评语大全
2014/04/24 职场文书
担保书范文
2015/01/20 职场文书
校长师德表现自我评价
2015/03/05 职场文书
语文教师求职信范文
2015/03/20 职场文书
Python初识逻辑与if语句及用法大全
2021/08/07 Python