当前位置: 首页>>编程示例 >>用法及示例精选 >>正文


Node.js performance.eventLoopUtilization([utilization1[, utilization2]])用法及代码示例

performance.eventLoopUtilization([utilization1[, utilization2]])

添加于:v15.1.0、v14.17.0、v12.22.0

参数

与 perf_hooks eventLoopUtilization() 相同的调用,除了返回工作实例的值。

一个区别是,与主线程不同,worker 内的引导是在事件循环内完成的。因此,一旦 worker 的脚本开始执行,事件循环的利用率就立即可用。

idle 时间不增加并不表示工作人员卡在引导程序中。以下示例显示了 worker 的整个生命周期如何从不累积任何 idle 时间,但仍然能够处理消息。

const { Worker, isMainThread, parentPort } = require('node:worker_threads');

if (isMainThread) {
  const worker = new Worker(__filename);
  setInterval(() => {
    worker.postMessage('hi');
    console.log(worker.performance.eventLoopUtilization());
  }, 100).unref();
  return;
}

parentPort.on('message', () => console.log('msg')).unref();
(function r(n) {
  if (--n < 0) return;
  const t = Date.now();
  while (Date.now() - t < 300);
  setImmediate(r, n);
})(10);

工作人员的事件循环利用率只有在'online' 事件发出,如果在此之前或之后调用'exit' 事件,则所有属性的值为0.

相关用法


注:本文由纯净天空筛选整理自nodejs.org大神的英文原创作品 performance.eventLoopUtilization([utilization1[, utilization2]])。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。