node.js - 在 Node.js 中定位线程泄漏
问题描述
所以我在 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}]
有时有数十个,但可能会达到数百个。而且我不知道它们是如何创建的,它们在做什么。但可以肯定的是,它们正在消耗系统资源。
这个项目有复杂的包依赖,所以我很难找到这个问题的根本原因。如果有人可以为我阐明这种情况,将不胜感激。
解决方案
感谢@jfriend00 的评论,它确实帮助我缩小了范围。
所以asyncawait和它的底层节点光纤在我的情况下是根本原因。
虽然我仍然不太确定这是如何发生的(因为这是一个广泛使用的模块,似乎没有人在谈论这个)。但是花一些时间用节点本机异步替换所有 asyncawait 会使线程数回到 4。
推荐阅读
- java - 打印文本文件的第一行
- eclipse - Eclipse:本地代理设置丢失,中断网络连接
- vba - 如何在不知道它有多少项目的情况下输出一个excel数组
- react-native - Expo反应本机对等依赖
- mysql - 为什么 truncateTable 不能在 Joomla 3.7 中工作?
- google-apps-script - 如何创建宏以在活动单元格中复制整行并在活动单元格下方粘贴?
- android - 物理 Android 设备中的 React-Native 应用程序崩溃(按下开发设置时)
- c# - BrowseTags 方法(收集器对象) | VBA 与 C#
- php - IP2LOCATION - SQL 查询与二进制文件?
- r - 用 purrr 重组列表