JavaScript监控当前cpu使用状况

简介: 也许在你面试的某一天,突然问你一个问题:“如何粗略的计算出当前系统cpu的使用情况?” JavaScript的应用分很多场景,在面对并发量过千万的平台,对JavaScript的性能将会越来越严格,而在面试中是一定会考察以下三条:算法、性能优化、业务分析,会不停的追问你有没有更好解决方法   回...

也许在你面试的某一天,突然问你一个问题:“如何粗略的计算出当前系统cpu的使用情况?”

JavaScript的应用分很多场景,在面对并发量过千万的平台,对JavaScript的性能将会越来越严格,而在面试中是一定会考察以下三条:算法、性能优化、业务分析,会不停的追问你有没有更好解决方法

 

回到题目,想获取当前系统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();
})();
}
 
如果想判定的更为精准,那只能在定时器的执行时间和对差值的对比上进行调整了。
 
在搜索javascript cpu相关的文章中,发现早在几年前 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'));
 
image
 
在当前页面右上角会出现一个小图标,它分为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>

目录
相关文章
|
3月前
|
监控 JavaScript 前端开发
使用Vue.js开发员工上网行为监控的实时数据展示页面
使用Vue.js开发的实时员工上网行为监控页面,展示员工访问的网站、应用和时间等数据。页面响应式设计,适应不同设备。通过Vue组件显示实时数据,如`&lt;li v-for=&quot;activity in activities&quot;&gt;`循环渲染。数据定时更新,利用Vue的生命周期钩子和axios从服务器获取并自动刷新,确保数据的时效性。该页面有助于管理者即时了解员工网络活动,保障企业网络安全和资源管理。
175 5
|
4月前
|
监控 Python
【python】实现cpu/内存监控的功能(非常简单)
【python】实现cpu/内存监控的功能(非常简单)
|
4月前
|
监控 JavaScript API
局域网监控软件的实时通知系统:利用Node.js和WebSocket实现即时消息推送
本文介绍了如何使用Node.js和WebSocket构建局域网监控软件的实时通知系统。实时通知对于网络安全和家庭监控至关重要,能即时发送监控数据变化的通知,提高响应速度。通过Node.js创建WebSocket服务器,当数据变化时,监控软件发送消息至服务器,服务器随即推送给客户端。此外,还展示了如何利用Node.js编写API,自动将监控数据提交到网站,便于用户查看历史记录,从而提升监控体验。
151 3
|
4月前
|
存储 弹性计算 监控
监控CPU
【4月更文挑战第30天】
42 0
|
2月前
|
监控 Python
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
paramiko 模块 ---Python脚本监控当前系统的CPU、内存、根目录、IP地址等信息
|
2月前
|
监控
主机状态监控,通过top命令查看CPU、内存使用情况,ctrl + c退出,输入top整个页面就变成一个任务管理器的形式了,Ctrl + C直接退出,Q也可以退掉了
主机状态监控,通过top命令查看CPU、内存使用情况,ctrl + c退出,输入top整个页面就变成一个任务管理器的形式了,Ctrl + C直接退出,Q也可以退掉了
|
4月前
|
监控 Linux API
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
LabVIEW监控实时嵌入式目标上的CPU和内存使用情况
241 4
|
4月前
|
监控 Shell
Shell脚本监控CPU、内存和硬盘利用率
Shell脚本监控CPU、内存和硬盘利用率
|
4月前
|
监控 JavaScript 安全
监控内网电脑软件设计与实现:基于Node.js的服务器端架构分析
在当今信息技术高度发达的时代,监控内网电脑的需求日益增长。企业需要确保网络安全,个人用户也需要监控家庭网络以保护隐私和安全。本文将介绍一种基于Node.js的服务器端架构,用于设计和实现监控内网电脑软件。
186 0
|
4月前
|
存储 监控 前端开发
JavaScript手册:公司员工电脑监控软件前端交互的代码设计
在当今信息时代,随着公司对员工电脑活动的监控需求不断增加,前端交互的代码设计变得尤为关键。本手册将深入探讨JavaScript编写的公司员工电脑监控软件监控代码,着重介绍如何设计能够在不引起怀疑的情况下,实现对员工电脑活动的细致监控。
252 2