在Node.js中查找线程泄漏

时间:2019-06-15 08:40:16

标签: node.js multithreading

因此,我在Ubuntu上运行了该节点应用程序。而且我注意到pstree -a

上有很多线程
 └─node /bin/node --expose-gc -max-old-space-size=256 main.js
     └─process.title
         ├─sh ...
         ├─sudo ...
         │... bunch of scripts i'm doing
         ├─66*[{process.title}]
         └─5*[{node}]

有时会有数十个,但可能会增加到数百个。而且我不知道他们是如何创建的,他们在做什么。但是可以肯定的是,他们正在消耗系统资源。

此项目具有复杂的程序包依赖关系,因此对我来说很难找到此问题的根本原因。如果有人能为我介绍这种情况,将不胜感激。

1 个答案:

答案 0 :(得分:0)

感谢@ jfriend00的评论,它确实帮助我缩小了范围。

因此,在我看来,asyncawait及其底层node-fibers是根本原因。

尽管我仍然不太清楚这是怎么发生的(因为这是一个广泛使用的模块,而且似乎没有人在谈论这个)。但是花一些时间用节点本机异步替换所有asyncawait会使线程数回到4。