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 Array对象基础知识小结
Nov 16 Javascript
js冒泡法和数组转换成字符串示例代码
Aug 14 Javascript
AngularJS中的过滤器使用详解
Jun 16 Javascript
JavaScript必知必会(九)function 说起 闭包问题
Jun 08 Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 Javascript
函数四种调用模式以及其中的this指向
Jan 16 Javascript
jQuery插件ContextMenu自定义图标
Mar 15 Javascript
vuejs 动态添加input框的实例讲解
Aug 24 Javascript
Vue面试题及Vue知识点整理
Oct 07 Javascript
详解微信小程序入门从这里出发(登录注册、开发工具、文件及结构介绍)
Jul 21 Javascript
浅谈鸿蒙 JavaScript GUI 技术栈
Sep 17 Javascript
vue.js+element 默认提示中英文操作
Nov 11 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实现把数组按指定的个数分隔
2014/02/17 PHP
实例讲解php实现多线程
2019/01/27 PHP
如何做到打开一个页面,过几分钟自动转到另一页面
2007/04/20 Javascript
ExtJS4利根据登录后不同的角色分配不同的树形菜单
2014/05/02 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
在其他地方你学不到的jQuery小贴士和技巧(欢迎收藏)
2016/01/20 Javascript
javascript获取select标签选中的值
2016/06/04 Javascript
微信小程序 九宫格实例代码
2017/01/21 Javascript
jQuery实现贪吃蛇小游戏(附源码下载)
2017/03/04 Javascript
一个可复用的vue分页组件
2017/05/15 Javascript
使用jQuery实现购物车结算功能
2017/08/15 jQuery
React-intl 实现多语言的示例代码
2017/11/03 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
微信小程序实现人脸识别
2018/05/25 Javascript
详解Vue项目在其他电脑npm run dev运行报错的解决方法
2018/10/29 Javascript
详解Vue组件之间通信的七种方式
2019/04/14 Javascript
JS中async/await实现异步调用的方法
2019/08/28 Javascript
JS hasOwnProperty()方法检测一个属性是否是对象的自有属性的方法
2021/01/29 Javascript
Python基于递归算法实现的走迷宫问题
2017/08/04 Python
matplotlib在python上绘制3D散点图实例详解
2017/12/09 Python
Python使用cx_Oracle模块操作Oracle数据库详解
2018/05/07 Python
PyCharm代码整体缩进,反向缩进的方法
2018/06/25 Python
python3使用pandas获取股票数据的方法
2018/12/22 Python
Pandas时间序列重采样(resample)方法中closed、label的作用详解
2019/12/10 Python
python实现手势识别的示例(入门)
2020/04/15 Python
Pytho爬虫中Requests设置请求头Headers的方法
2020/09/22 Python
Python实现邮件发送的详细设置方法(遇到问题)
2021/01/18 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
韩国知名的家庭购物网站:CJmall
2016/08/01 全球购物
学生个人的自我评价分享
2013/11/05 职场文书
毕业设计计划书
2014/01/09 职场文书
2015年员工试用期工作总结
2014/12/12 职场文书
2015年城管个人工作总结范文
2015/04/20 职场文书
贷款收入证明格式
2015/06/24 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书
化工生产实习心得体会
2016/01/22 职场文书