この記事の例では、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ページのアドレスバーに次のように直接入力するだけです:
現在のページの右上隅に小さなアイコンが表示されます。このアイコンは 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 プログラミングのすべての人に役立つことを願っています。