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 相关文章推荐
用jQuery简化JavaScript开发分析
Feb 19 Javascript
用jQuery扩展自写的 UI导航
Jan 13 Javascript
jquery制作弹窗提示窗口代码分享
Mar 02 Javascript
javascript实现的一个带下拉框功能的文本框
May 08 Javascript
JS简单随机数生成方法
Sep 05 Javascript
值得分享的Bootstrap Table使用教程
Nov 23 Javascript
Angular多选、全选、批量选择操作实例代码
Mar 10 Javascript
详解webpack性能优化——DLL
Oct 20 Javascript
vue树形结构获取键值的方法示例
Jun 21 Javascript
一次Webpack配置文件的分离实战记录
Nov 30 Javascript
JS实现4位随机验证码
Oct 19 Javascript
JavaScript实现音乐播放器
Aug 14 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
一个简易需要注册的留言版程序
2006/10/09 PHP
关于访问控制的一首PHP面试题(对属性或方法的访问控制)
2012/09/13 PHP
php通过array_shift()函数移除数组第一个元素的方法
2015/03/18 PHP
详解WordPress开发中用于获取分类及子页面的函数用法
2016/01/08 PHP
PHP+Redis事务解决高并发下商品超卖问题(推荐)
2020/08/03 PHP
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
JS控件ASP.NET的treeview控件全选或者取消(示例代码)
2013/12/16 Javascript
javascript(js)的小数点乘法除法问题详解
2014/03/07 Javascript
JS数组array元素的添加和删除方法代码实例
2015/06/01 Javascript
纯js实现无限空间大小的本地存储
2015/06/18 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
Django使用多数据库的方法
2017/09/06 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
在HTML文档中嵌入JavaScript的四种方法
2018/05/07 Javascript
解决node修改后需频繁手动重启的问题
2018/05/13 Javascript
Vue2.X 通过AJAX动态更新数据
2018/07/17 Javascript
手把手15分钟搭一个企业级脚手架
2019/09/16 Javascript
webpack 处理CSS资源的实现
2019/09/27 Javascript
Vue 开发必须知道的36个技巧(小结)
2019/10/09 Javascript
vue路由守卫,限制前端页面访问权限的例子
2019/11/11 Javascript
[50:02]完美世界DOTA2联赛PWL S2 Magma vs FTD 第三场 11.29
2020/12/03 DOTA
python多线程抽象编程模型详解
2019/03/20 Python
Python生态圈图像格式转换问题(推荐)
2019/12/02 Python
基于python使用tibco ems代码实例
2019/12/20 Python
python+tifffile之tiff文件读写方式
2020/01/13 Python
python GUI计算器的实现
2020/10/09 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
乌克兰的第一家手表店:Deka
2020/03/05 全球购物
小学教师自我鉴定
2013/11/07 职场文书
六十大寿答谢词
2014/01/12 职场文书
中专生自荐信
2014/06/25 职场文书
2014年高一班主任工作总结
2014/12/05 职场文书
小平小道观后感
2015/06/09 职场文书
深入理解redis中multi与pipeline
2021/06/02 Redis