JavaScript获取当前cpu使用率的方法

 更新时间:2015年12月15日 12:20:00   作者:bigwhiteshark  
这篇文章主要介绍了JavaScript获取当前cpu使用率的方法,涉及JavaScript针对系统硬件操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下

本文实例讲述了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'));

在当前页面右上角会出现一个小图标,它分为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程序设计有所帮助。

相关文章

  • js类定义函数时用prototype与不用的区别示例介绍

    js类定义函数时用prototype与不用的区别示例介绍

    没有使用prototype的方法相当于类的静态方法,相反,使用prototype的方法相当于类的实例方法,不许new后才能使用
    2014-06-06
  • JavaScript手风琴页面制作

    JavaScript手风琴页面制作

    这篇文章主要为大家详细介绍了JavaScript手风琴页面的制作代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Javascript中常用类型的格式化方法小结

    Javascript中常用类型的格式化方法小结

    这篇文章主要给大家介绍了Javascript中常用类型的格式化方法,其中包括格式化浮点数、格式化有符号整数(int32)、格式化无符号整数(uint32)、格式化布尔值以及格式化字符串等,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • JS中null和undefined的区别

    JS中null和undefined的区别

    在JavaScript中,null和undefined是两个常见的数据类型,本文就详细的介绍了JS中null和undefined的区别,感兴趣的可以了解一下
    2023-05-05
  • JS实现的网页背景闪电闪烁效果代码

    JS实现的网页背景闪电闪烁效果代码

    这篇文章主要介绍了JS实现的网页背景闪电闪烁效果代码,涉及JavaScript定时函数结合页面元素样式操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • innerHTML中标签可以换行的方法汇总

    innerHTML中标签可以换行的方法汇总

    本文给大家分享的是一个在javascript中使用innerhtml输出的时候如何实现换行的小技巧,其实很简单,在需要换行的地方加上\即可
    2015-08-08
  • dropload.js插件下拉刷新和上拉加载使用详解

    dropload.js插件下拉刷新和上拉加载使用详解

    这篇文章主要为大家详细介绍了dropload.js插件下拉刷新和上拉加载的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • JS实现网页烟花动画效果

    JS实现网页烟花动画效果

    这篇文章主要为大家详细介绍了JS实现网页烟花动画效果,点击鼠标烟花向四周扩散,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • JS实现五星好评效果

    JS实现五星好评效果

    这篇文章主要为大家详细介绍了JS实现五星好评效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • js fromCharCode输出26个字母的代码

    js fromCharCode输出26个字母的代码

    这个代码比较简单主要是用到了fromCharCode的特性
    2008-11-11

最新评论