node.js应用程序中的epoll_pwait是什么?我可以对此做些什么?
我的应用程序是一个网络版的棋盘游戏 我正在使用node.js应用程序中的epoll_pwait是什么?我可以对此做些什么?,node.js,profiling,epoll,Node.js,Profiling,Epoll,我的应用程序是一个网络版的棋盘游戏 我正在使用节点--prof app.js来分析应用程序,并使用节点--prof process ISOLATE\u LOG\u FILE>processed.txt将它们转换为已处理的文件 对于未知代码事件,我确实收到了很多代码移动事件: 最后,我留下了一个文件,如下所示: 来自isolate-0x3df60c0-v8.log的统计分析结果(13113个刻度,192个未计算,不包括0)。 在node.js的上下文中,这个epoll_pwait是什么 为什么它
节点--prof app.js
来分析应用程序,并使用节点--prof process ISOLATE\u LOG\u FILE>processed.txt
将它们转换为已处理的文件
对于未知代码事件,我确实收到了很多代码移动事件:
最后,我留下了一个文件,如下所示:
来自isolate-0x3df60c0-v8.log的统计分析结果(13113个刻度,192个未计算,不包括0)。
在node.js的上下文中,这个epoll_pwait是什么李>
为什么它使用了我60%的应用程序李>
我能做些什么
本质上意味着您的应用程序(事件循环)正在等待某些东西,即i/O操作
引用上面的链接:
对epoll_pwait()
的调用将被阻止,直到:
• a file descriptor delivers an event;
• the call is interrupted by a signal handler; or
• the timeout expires.
对于进一步的调试,我真正想到的是,如果有任何setInterval
代码超时很少或为零,如果是这样,请将您传递的回调函数发布到interval中。您解决了这个问题吗?我面临着同样的问题。。。我也有一个非常高的epoll_pwait
(没有你的百分比那么高,但仍然很高),我不知道这是否值得关注(主要是它是否代表阻塞的“等待”)。不:(我修复了其他一些帮助Edeloll_wait根据应用程序处理任何类型IO的问题。操作成本很高,但上面没有说明。通常这是HTTP或FS操作,也通常是应用程序错误行为。很可能SocketServer.js文件没有实现自己的超时。这是应用程序代码中的典型问题。因此,我会接受下面的答案。可能您的应用程序代码有一个非常特殊的问题。在这种情况下,我会将其发布在这里。还要注意:相应的实现来自libuv。相应的C代码只有一个相关位置,提示超时。如果是,请将您传递给t的回调函数发布到这里interval是什么意思?我的意思是,如果应用程序的代码有一个带有零或微小超时的setInterval,请发布这个回调=>setInterval(回调,超时)
,我怀疑回调有某种循环,回调本身在无限循环中运行(按setInterval).我是根据经验说话的,因为这种情况确实发生在我身上,我发现一个设定的时间间隔(有微小的超时)和一个内部有循环的回调导致cpu逐渐增加到100%。我得到的最低值是50毫秒。用你的话来说,这算不算什么?哦^那是在前端。我在后端的最小值是1分钟