現在の CPU 使用率を取得する JavaScript メソッド_JavaScript のヒント

WBOY
リリース: 2016-05-16 15:25:29
オリジナル
4811 人が閲覧しました

この記事の例では、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);

ログイン後にコピー

上記の方法が許可されていない場合、通常の Web ページで大まかな見積もりを行うためのより適切な方法はありますか?

タイマーを使用する場合、インターバル実行時間が 500 ミリ秒であると仮定し、その差が 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 でそのような例を書きました。使用方法は比較的簡単で、監視したいWebページのアドレスバーに次のように直接入力するだけです:

コードをコピー コードは次のとおりです:
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 プログラミングのすべての人に役立つことを願っています。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート