Closed liSong5713 closed 2 years ago
你又不不能保证是同一瞬间调用的
第一个问题: 代码中能确定的是有两个WriteStream的, 但是active_file_handles却没有反应出来。 第二个问题:active_tcp_handles 一直为3个,我又http请求并且debug 断点暂停,active_tcp_handles仍然3个。
还一个问题作者既然开源了,就保持一个开源的态度,提的issue请麻烦认真审视下再close.
process._getActiveHandles()
返回的几个 stream 是 stdin/stdout/stderr,是 unref 状态的,在只剩下这几个 handle 时 loop 也会退出。部分 native handle 是不会在 process._getActiveHandles()
当中显示的,他们没有对应的 JS wrap object。非 ref 状态的 handle 不会在 xprofiler 当中被统计。
如果 debug 断点了 JS 线程,那么 xprofiler 数据就不会再更新了,直到 JS 线程断点恢复,所以如 @hyj1991 所说, TCP handle 的数量因为是不同时间点采集的和 process._getActiveHandles()
不一定能对齐的。
@legendecas 感谢解惑
process._getActiveHandles()返回数据如下
[WriteStream, WriteStream, ReadStream, Socket, Socket, Server, Socket]
xprofiler 下返回的数据如下
active_handles: 4 active_file_handles: 0 active_and_ref_file_handles: 0 active_tcp_handles: 3 active_and_ref_tcp_handles: 3 active_udp_handles: 0 active_and_ref_udp_handles: 0 active_timer_handles: 1 active_and_ref_timer_handles: 1
通过nodejs 返回active_handles 为7个,xprofiler为4个.请问uv下数值为什么会产生差异呢