>  기사  >  웹 프론트엔드  >  현재 CPU 사용량을 가져오는 JavaScript 방법_javascript 팁

현재 CPU 사용량을 가져오는 JavaScript 방법_javascript 팁

WBOY
WBOY원래의
2016-05-16 15:25:294809검색

이 기사의 예에서는 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);

위의 방법이 허용되지 않는 경우, 일반 웹페이지에서 대략적인 추정을 할 수 있는 더 적절한 방법이 있을까요?

타이머를 사용하는 아이디어는 호출 시 타이밍 시작부터 이 실행까지의 시간이 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으로 문의하세요.