當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


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]])。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。