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弹出关闭遮罩层实例
Aug 06 Javascript
JavaScript实现简单的时钟实例代码
Nov 23 Javascript
jQuery实现移动端滑块拖动选择数字效果
Dec 24 Javascript
微信小程序 location API接口详解及实例代码
Oct 12 Javascript
js print打印网页指定区域内容的简单实例
Nov 01 Javascript
详解angular中通过$location获取路径(参数)的写法
Mar 21 Javascript
Angular利用trackBy提升性能的方法
Jan 26 Javascript
基于layui内置模块(element常用元素的操作)
Sep 20 Javascript
createObjectURL方法实现本地图片预览
Sep 30 Javascript
JavaScript实现像雪花一样的Hexaflake分形
Jul 07 Javascript
vue 中的动态传参和query传参操作
Nov 09 Javascript
JavaScript实现H5接金币功能(实例代码)
Feb 22 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
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
第二节--PHP5 的对象模型
2006/11/16 PHP
关于Appserv无法打开localhost问题的解决方法
2009/10/16 PHP
PHP中实现生成静态文件的方法缓解服务器压力
2014/01/07 PHP
浅谈php冒泡排序
2014/12/30 PHP
解析WordPress中控制用户登陆和判断用户登陆的PHP函数
2016/03/01 PHP
YII框架实现自定义第三方扩展操作示例
2019/04/26 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
js限制文本框只能输入数字方法小结
2014/06/16 Javascript
推荐8款jQuery轻量级树形Tree插件
2014/11/12 Javascript
jquery+css3问卷答题卡翻页动画效果示例
2016/10/26 Javascript
微信小程序开发的四十个技术窍门总结(推荐)
2017/01/23 Javascript
12个非常有用的JavaScript技巧
2017/05/17 Javascript
React/Redux应用使用Async/Await的方法
2017/11/16 Javascript
js中getBoundingClientRect的作用及兼容方案详解
2018/02/01 Javascript
node使用promise替代回调函数
2018/05/07 Javascript
vue项目打包部署到服务器的方法示例
2018/08/27 Javascript
vue中的inject学习教程
2019/04/24 Javascript
浅谈bootstrap layer.open中end的使用方法
2019/09/12 Javascript
HTML+JS实现“代码雨”效果源码(黑客帝国文字下落效果)
2020/03/17 Javascript
python client使用http post 到server端的代码
2013/02/10 Python
python安装与使用redis的方法
2016/04/19 Python
python最小生成树kruskal与prim算法详解
2019/01/17 Python
Python中函数参数匹配模型详解
2019/06/09 Python
阿迪达斯加拿大官网:Adidas加拿大
2016/08/25 全球购物
比利时网上药店: Drogisterij.net
2017/03/17 全球购物
英文求职信结束语大全
2013/10/26 职场文书
《美丽的小兴安岭》教学反思
2014/02/26 职场文书
大学生学期自我鉴定
2014/03/19 职场文书
2014年政风行风自查自纠报告
2014/10/21 职场文书
2015年小学生自我评价范文
2015/03/03 职场文书
幼儿园毕业致辞
2015/07/29 职场文书
Python基础之元编程知识总结
2021/05/23 Python
Redis的字符串是如何实现的
2021/10/24 Redis
Kubernetes控制节点的部署
2022/04/01 Servers
python中filter,map,reduce的作用
2022/06/10 Python