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 相关文章推荐
动态表格Table类的实现
Aug 26 Javascript
JQuery实现倒计时按钮的实现代码
Mar 23 Javascript
js判断字符长度以及中英文数字等
Dec 31 Javascript
JavaScript中的Web worker多线程API研究
Dec 06 Javascript
node.js中的fs.rename方法使用说明
Dec 16 Javascript
jQuery模拟原生态App上拉刷新下拉加载更多页面及原理
Aug 10 Javascript
基于Flowplayer打造一款免费的WEB视频播放器附源码
Sep 06 Javascript
深入理解Angularjs向指令传递数据双向绑定机制
Dec 31 Javascript
Javascript es7中比较实用的两个方法示例
Jul 21 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
Oct 29 Javascript
jquery获取img的src值实例介绍
Jan 16 jQuery
利用Vconsole和Fillder进行移动端抓包调试方法
Mar 05 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
discuz的php防止sql注入函数
2011/01/17 PHP
php一个解析字符串排列数组的方法
2015/05/12 PHP
Yii2超好用的日期和时间组件(值得收藏)
2016/05/05 PHP
利用php-cli和任务计划实现刷新token功能的方法
2017/05/03 PHP
thinkPHP5框架中widget的功能与用法详解
2018/06/11 PHP
用jscript启动sqlserver
2007/06/21 Javascript
基于NodeJS的前后端分离的思考与实践(五)多终端适配
2014/09/26 NodeJs
浅谈jquery中delegate()与live()
2015/06/22 Javascript
快速掌握Node.js模块封装及使用
2016/03/21 Javascript
微信小程序 navigation API实例详解
2016/10/02 Javascript
VUE使用vuex解决模块间传值问题的方法
2017/06/01 Javascript
Vue 实现列表动态添加和删除的两种方法小结
2018/09/07 Javascript
Antd-vue Table组件添加Click事件,实现点击某行数据教程
2020/11/17 Javascript
Python3基础之list列表实例解析
2014/08/13 Python
深入解析Python中的urllib2模块
2015/11/13 Python
Python中的pack和unpack的使用
2018/03/12 Python
pycharm debug功能实现跳到循环末尾的方法
2018/11/29 Python
python的debug实用工具 pdb详解
2019/07/12 Python
Python DataFrame一列拆成多列以及一行拆成多行
2019/08/06 Python
Python scipy的二维图像卷积运算与图像模糊处理操作示例
2019/09/06 Python
Django通过json格式收集主机信息
2020/05/29 Python
Pycharm中配置远程Docker运行环境的教程图解
2020/06/11 Python
html5 Canvas画图教程(8)—canvas里画曲线之bezierCurveTo方法
2013/01/09 HTML / CSS
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
Fossil加拿大官网:化石手表、手袋、首饰及配饰
2019/04/23 全球购物
物流专员岗位职责
2014/02/17 职场文书
师范生自我鉴定
2014/03/20 职场文书
个人委托书格式
2014/04/04 职场文书
学校社会实践活动总结
2014/07/03 职场文书
党员自我剖析材料(群众路线)
2014/10/06 职场文书
企业整改报告范文
2014/11/08 职场文书
优秀教师个人总结
2015/02/11 职场文书
出国留学自荐信模板
2015/03/06 职场文书
Python代码,能玩30多款童年游戏!这些有几个是你玩过的
2021/04/27 Python
MySQL创建管理LIST分区
2022/04/13 MySQL
mysql拆分字符串作为查询条件的示例代码
2022/07/07 MySQL