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中style.left与offsetLeft的使用及区别详解
Jun 08 Javascript
ionic cordova一次上传多张图片(类似input file提交表单)的实现方法
Dec 16 Javascript
JavaScript实现鼠标点击导航栏变色特效
Feb 08 Javascript
微信小程序中显示html格式内容的方法
Apr 25 Javascript
从对象列表中获取一个对象的方法,依据关键字和值
Sep 20 Javascript
详解AngularJS之$window窗口对象
Jan 17 Javascript
Angular HMR(热模块替换)功能实现方法
Apr 04 Javascript
详解小程序如何避免多次点击,重复触发事件
Apr 08 Javascript
layui禁用侧边导航栏点击事件的解决方法
Sep 25 Javascript
vue中@change兼容问题详解
Oct 25 Javascript
vue ajax 拦截原理与实现方法示例
Nov 29 Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
Feb 15 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生成扇形比例图实例
2013/11/06 PHP
php获取文件内容最后一行示例
2014/01/09 PHP
php利用新浪接口查询ip获取地理位置示例
2014/01/20 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
php限制上传文件类型并保存上传文件的方法
2015/03/13 PHP
PHP整合七牛实现上传文件
2015/07/03 PHP
PHP实现批量上传单个文件
2015/12/29 PHP
php  单例模式详细介绍及实现源码
2016/11/05 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
window.navigate 与 window.location.href 的使用区别介绍
2013/09/21 Javascript
js写的方法实现上传图片之后查看大图
2014/03/05 Javascript
jquery动态加载js/css文件方法(自写小函数)
2014/10/11 Javascript
Bootstrap 附加导航(Affix)插件实例详解
2016/06/01 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
原生Javascript和jQuery做轮播图简单例子
2016/10/11 Javascript
BootStrap Fileinput的使用教程
2016/12/30 Javascript
浅谈键盘上回车按钮的js触发事件
2017/02/13 Javascript
jQuery实现多张图片上传预览(不经过后端处理)
2017/04/29 jQuery
Bootstrap 表单验证formValidation 实现表单动态验证功能
2017/05/17 Javascript
jQuery使用each遍历循环的方法
2018/09/19 jQuery
解决nuxt页面中mounted、created、watch执行两遍的问题
2020/11/05 Javascript
vue $router和$route的区别详解
2020/12/02 Vue.js
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
在Python中操作字典之fromkeys()方法的使用
2015/05/21 Python
Pycharm学习教程(6) Pycharm作为Vim编辑器使用
2017/05/03 Python
解决pip install的时候报错timed out的问题
2018/06/12 Python
python递归法解决棋盘分割问题
2019/07/17 Python
对Tensorflow中Device实例的生成和管理详解
2020/02/04 Python
python3 正则表达式基础廖雪峰
2020/03/25 Python
Django {{ MEDIA_URL }}无法显示图片的解决方式
2020/04/07 Python
python中time.ctime()实例用法
2021/02/03 Python
基于PyInstaller各参数的含义说明
2021/03/04 Python
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
建筑个人求职信范文
2014/01/25 职场文书
甜美蛋糕店创业计划书
2014/01/30 职场文书
仓库管理员岗位职责
2014/03/19 职场文书