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 相关文章推荐
让textarea自动调整大小的js代码
Apr 12 Javascript
原生态js,鼠标按下后,经过了那些单元格的简单实例
Aug 11 Javascript
js HTML5手机刮刮乐代码
Sep 29 Javascript
让编辑器支持word复制黏贴、截屏的js代码
Oct 17 Javascript
详解jQuery的表单验证插件--Validation
Dec 21 Javascript
JS前端开发判断是否是手机端并跳转操作(小结)
Feb 05 Javascript
javascript 中的try catch应用总结
Apr 01 Javascript
three.js中文文档学习之创建场景
Nov 20 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
Jan 31 Javascript
总结4个方面优化Vue项目
Feb 11 Javascript
关于JavaScript回调函数的深入理解
Jun 27 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
Protoss兵种对照表
2020/03/14 星际争霸
用Socket发送电子邮件
2006/10/09 PHP
Win2003下APACHE+PHP5+MYSQL4+PHPMYADMIN 的简易安装配置
2006/11/18 PHP
php中将网址转换为超链接的函数
2011/09/02 PHP
基于PHP生成简单的验证码
2016/06/01 PHP
php+mysql查询实现无限下级分类树输出示例
2016/10/03 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
PHP实现的简单AES加密解密算法实例
2017/05/29 PHP
php远程请求CURL实例教程(爬虫、保存登录状态)
2020/12/10 PHP
用JAVASCRIPT如何给&amp;lt;textarea&amp;gt;&amp;lt;/textarea&amp;gt;赋值
2007/04/20 Javascript
JQuery AJAX 中文乱码问题解决
2013/06/05 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
jQuery使用addClass()方法给元素添加多个class样式
2015/03/26 Javascript
jquery 实时监听输入框值变化的完美方法(必看)
2017/01/26 Javascript
基于Bootstrap框架实现图片切换
2017/03/10 Javascript
js时间戳与日期格式之间相互转换
2017/12/11 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
js/jQuery实现全选效果
2019/06/17 jQuery
详解webpack打包vue项目之后生成的dist文件该怎么启动运行
2019/09/06 Javascript
[51:52]Liquid vs Secret 2019国际邀请赛淘汰赛 败者组 BO3 第二场 8.24
2019/09/10 DOTA
Python使用email模块对邮件进行编码和解码的实例教程
2016/07/01 Python
使用pycharm生成代码模板的实例
2018/05/23 Python
python读写LMDB文件的方法
2018/07/02 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
Python获取当前脚本文件夹(Script)的绝对路径方法代码
2019/08/27 Python
python sorted方法和列表使用解析
2019/11/18 Python
python help函数实例用法
2020/12/06 Python
Python 中Operator模块的使用
2021/01/30 Python
trivago美国:全球最大的酒店价格比较网站
2018/01/18 全球购物
Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
2014/07/27 面试题
大学生入党思想汇报
2014/01/01 职场文书
实习生自我评价
2014/01/18 职场文书
《骆驼和羊》教学反思
2014/02/27 职场文书
高一新生军训感言
2014/03/02 职场文书
低碳环保倡议书
2014/04/14 职场文书
因身体原因离职的辞职信范文
2015/05/12 职场文书