前端监听CPU使用情况

在前端的业务场景中,很多情况都需要根据用户的电脑使用情况,使用不同的策略,比如电脑卡顿的时候,需要做一些降级的处理。但是浏览器又不支持获取电脑的cpu使用率。很多场景下都会比较难处理(之前在网上有看到过使用计时器统计时差,比如100ms的计时器,偏差越大表示cpu的利用率越高,但是个人测试下来不是特别好用)。Chrome在125版本中推出了新的API,支持获取当前电脑的cpu使用情况。可以根据不同的状态针对业务做一些降级,用于改善用户体验。

效果

在这里插入图片描述
此处使用了一个工具,可以看到当cpu利用率处于不同阶段的时候,前端页面会收到不同的状态回调。

API

PressureObserver

新的类名字叫做PressureObserver。通过PressureObserver.observe方法来监听cpu状态的变化。
每次cpu压力发生变化的时候会触发回调,返回当前cpu的状态(PressureRecord)。

PressureRecord
interface PressureRecord {
  source: "cpu";
  state: "nominal" | "fair" | "serious" | "critical";
  time: number;
}
  • source
    • 表示压力变化的项,目前只支持cpu
  • state
    • 表示目前的状态
      • nominal 表示很好
      • fair 表示压力略微升高,但是整体性能依然不错
      • serious 表示能耗大幅升高,应该考虑降低能耗
      • critical 表示能耗已经非常高,应该采取降级措施
  • time
    • 压力变化的时间戳

代码

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>前端页面性能监控</title>
  </head>
  <body>
    <div id="div" style="white-space: pre-line;"></div>
    <script>
      let div = document.getElementById("div");

      function callback(records) {
        const lastRecord = records[records.length - 1];
        const date = new Date(lastRecord.time);
        div.innerHTML += `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}  state:` + lastRecord.state + '\r\n';
      }

      try {
        const observer = new PressureObserver(callback);
        observer.observe("cpu", { sampleInterval: 1000 });
      } catch (error) {
        div.innerHTML += `不支持PressureObserver方法\r\n`;
      }
  </script>
</body>

注意事项

此方法需要在页面是active的状态下才会触发回调。

  • 16
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆包啊啊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值