我在测试我的网络应用程序时遇到了高延迟。通常的响应时间在700 ms左右,但在重负载下,它攀升到15 s。我想调试瓶颈在哪里。
我认为最基本的方法是有一些类似于超级冗长的输出,在那里我可以看到它冻结或花费大部分时间的部分。现在Im与node inspect
连接,Im循环pause
和cont
来捕捉我们此刻的位置,但这还不够。有没有什么方法可以使所有调试输出可见并将其转发到文件?
我知道这将是一个巨大的输出量。
更新:附上我想要的verbouse输出的屏幕截图,这就是我现在用pause / cont做的事情,但是我想要这个输出的不间断流:
1条答案
按热度按时间gg58donl1#
最后我以第一个方法的自动化结束。我创建了expect脚本,发送
n
(下一步)100000次,这样它就可以遍历整个页面加载。首先,我需要在不同的调试器窗口中暂停整个页面(不要关闭它,因为它会在退出时恢复执行)node inspect localhost:9229
>debug> pause
。然后,我可以运行期望脚本(在新窗口)管道到文件./nodebuger.exp 2>&1 | tee -a node.log
在那里(经过一些清理),当我看到一堆n个字符的行时,我知道上一步仍在进行中(所以很慢):
关于如何在任何(也是实时的)env上快速启用调试器而不中断的好文章:https://medium.com/the-node-js-collection/live-debugging-node-js-apps-at-the-command-line-cd5b58f883e1