【问题标题】:Check events in node.js event loop检查 node.js 事件循环中的事件
【发布时间】:2014-06-09 23:43:59
【问题描述】:

已经在 SO (node.js Event Loop Diagnostics) 上询问了这个问题的一个变体,但是该线程已有一年多的历史并且已经过时了。

具体来说,我希望能够在运行时从 node.js 进程中查看 node.js 事件循环,以确定待执行的事件数。

编辑: 上一个问题的结果指向外部诊断工具和/或内部设施,这些工具可以深入了解事件队列的时间长度。

目前,我正在检查 node.js 文档和 libuv 文档,但似乎没有弹出任何内容。希望有一个我可以利用的无证设施..

【问题讨论】:

  • 是否决票,因为它已被询问(ish)?
  • 它可能被否决了,因为你没有说明为什么旧的答案对你不起作用(除了它是旧的,这不是一个明确的原因)而且你没有把你自己尝试过的任何东西放在你的帖子上。
  • @DrCord 好点,谢谢。我已经编辑以反映这一点!
  • 这可能是非常非常困难的事情,如果还没有完成的话。见here。事件循环的实现并不像单个队列那样简单,您可以从中读取所有事件。问题在于它不是同质的,这意味着您处理 nextTick、I/O 事件和其他事件的方式不同。希望 v0.12 中对此有所帮助。但目前无法回答。
  • @user568109 我很担心这个。感谢您的回复!

标签: node.js


【解决方案1】:

有几个未记录的函数会返回打开请求和打开句柄的列表:

  • process._getActiveRequests()
  • process._getActiveHandles()

节点 v0.11.12+ 中还有一个实验性的 AsyncListener API,允许您为异步事件添加挂钩。

【讨论】:

  • 感谢@mscdex 的回复。是的,我看过那些,但我在某个地方读到过(试图找到在哪里),作者说它们没有按预期工作,并且将来可能会被删除
  • 我没有听说过任何关于不可靠性的事情。显然,尽管它们没有记录在案,但它们可以在任何给定时间被删除。但是,它们确实是目前唯一可用的解决方案。
  • 您有使用这些的经验吗?它们看起来可靠吗?
  • 我以前用过几次,但不经常。在我使用它们的时候,它们一直是准确的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-07-14
  • 2013-05-23
  • 2015-10-13
  • 1970-01-01
  • 2018-01-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多