首頁 >web前端 >js教程 >JavaScript取得目前cpu使用率的方法_javascript技巧

JavaScript取得目前cpu使用率的方法_javascript技巧

WBOY
WBOY原創
2016-05-16 15:25:294858瀏覽

本文實例講述了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 &#63; --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程式設計有所幫助。

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn