Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
node.js应用程序中的epoll_pwait是什么?我可以对此做些什么?_Node.js_Profiling_Epoll - Fatal编程技术网

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分钟