JavaScript獲取當(dāng)前cpu使用率的方法
本文實(shí)例講述了JavaScript獲取當(dāng)前cpu使用率的方法。分享給大家供大家參考,具體如下:
想獲取當(dāng)前系統(tǒng)cpu的使用率,如果允許使用hta,可以使用以下的代碼獲取當(dāng)前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);
如果不允許使用上面的方法,在正常的網(wǎng)頁中是否有更合適的方法進(jìn)行粗略的估算?
思路就是用一個(gè)定時(shí)器,假設(shè)間隔執(zhí)行時(shí)間為500ms,當(dāng)調(diào)用它時(shí),判斷從開始計(jì)時(shí)到本次執(zhí)行所用時(shí)間,如果兩者之差 == 500 則基本上可以認(rèn)定為比較正常,如果 > 500+ 則針對(duì)不同的值來判定cpu的繁忙狀況(因?yàn)椴煌臋C(jī)器,CPU處理能力不太一樣,所以這個(gè)最多只是粗略的估算不完全準(zhǔn)確,對(duì)系統(tǒng)的一些參數(shù)有較強(qiáng)的依賴性)
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(); })(); }
如果想判定的更為精準(zhǔn),那只能在定時(shí)器的執(zhí)行時(shí)間和對(duì)差值的對(duì)比上進(jìn)行調(diào)整了。
早在幾年前ajax.com上就有人已經(jīng)寫出來這樣的例子了。使用起來還比較簡單,直接在你的需要監(jiān)測的網(wǎng)頁地址欄中輸入:
在當(dāng)前頁面右上角會(huì)出現(xiàn)一個(gè)小圖標(biāo),它分為5個(gè)等級(jí),分別代表當(dāng)前cpu高度任務(wù)的狀況(過高則說明CPU使用率是比較高的,只能進(jìn)行一個(gè)大概的估算,不是很精確)
這里有一個(gè)在線例子:
<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>
它整個(gè)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');
希望本文所述對(duì)大家JavaScript程序設(shè)計(jì)有所幫助。
相關(guān)文章
JavaScript實(shí)現(xiàn)翻轉(zhuǎn)圖片的三種方法小結(jié)
有時(shí),我們可能需要翻轉(zhuǎn)Web應(yīng)用中的媒體元素,所以這篇文章小編為大家詳細(xì)介紹了三種使用JavaScript翻轉(zhuǎn)圖片的方法,希望對(duì)大家有所幫助2024-01-01JavaScript如何實(shí)現(xiàn)圖片處理與合成
這篇文章主要介紹了JavaScript如何實(shí)現(xiàn)圖片處理與合成,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05JS性能優(yōu)化實(shí)現(xiàn)方法及優(yōu)點(diǎn)進(jìn)行
這篇文章主要介紹了JS性能優(yōu)化實(shí)現(xiàn)方法及優(yōu)點(diǎn)進(jìn)行,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-08-08微信小程序注冊(cè)60s倒計(jì)時(shí)功能 使用JS實(shí)現(xiàn)注冊(cè)60s倒計(jì)時(shí)功能
這篇文章主要介紹了微信小程序注冊(cè)60s倒計(jì)時(shí)功能,以及使用JS實(shí)現(xiàn)注冊(cè)60s倒計(jì)時(shí)功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08對(duì)Layer彈窗使用及返回?cái)?shù)據(jù)接收的實(shí)例詳解
今天小編就為大家分享一篇對(duì)Layer彈窗使用及返回?cái)?shù)據(jù)接收的實(shí)例詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-09-09JavaScript ES6 Class類實(shí)現(xiàn)原理詳解
這篇文章主要介紹了JavaScript ES6 Class類實(shí)現(xiàn)原理詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-05-05jsp js鼠標(biāo)移動(dòng)到指定區(qū)域顯示選項(xiàng)卡離開時(shí)隱藏示例
jsp js 鼠標(biāo)移動(dòng)到指定區(qū)域顯示選項(xiàng)卡示例,離開時(shí)隱藏,具體實(shí)現(xiàn)代碼如下,感興趣的朋友可以了解下哈,希望對(duì)你有所幫助2013-06-06