node.js事件循环诊断

lak*_*tak 17 event-loop node.js

是否可以查看事件循环以进行诊断?

我想知道当前有多少事件正在等待执行(不包括setTimeout/interval).

更新:我想从正在运行的节点进程中执行此操作.

lak*_*tak 10

使用setImmediate()更新了nodejs 0.10

虽然我无法在队列中找到等待事件的数量,但我找到了另一个可能有用的健康指标:

var ts=Date.now();
setImmediate(function()
{
  var delay=Date.now()-ts;
});
Run Code Online (Sandbox Code Playgroud)

延迟将包含从排队事件到执行事件所花费的毫秒数.

这也考虑了cpu密集型事件(仅通过查看事件数就不可能).

测量本身也会影响事件队列,但这应该比完整的分析器具有更低的开销.

  • 如果我们真的可以'看到'事件阙会很棒...我想你从来没有找到办法做到这一点? (3认同)