node.js - 如何修复 node.js 中的内存泄漏
问题描述
我在过去的一天中为我的应用程序中的这个特殊案例而苦苦挣扎。
在一天中,应用程序从另一个数据库中获取数据(大约 400k 条目)并对其进行处理。处理后,应用程序将项目映射到该应用程序数据库内的集合并保存它们。
一切都很好,直到函数结束。目前,我正在通过 http 请求调用它,但这将是一项 CRON 工作。所以基本上,在到达 .res() 端点后,CPU 的使用速度并没有减慢,堆内存也没有释放。我只是想知道会发生什么。
我读了一些关于识别内存泄漏的文章并发现了这一点。[2] 是处理器,用于处理数据。
x[ 1] App Mem: 68 MB CPU: 1 % online xx x
x[ 2] App Mem: 182 MB CPU: 135 % online xx x
x[ 3] App Mem: 60 MB CPU: 0 % online xx x
x[ 4] App Mem: 60 MB CPU: 0 % online xx x
x[ 5] App Mem: 59 MB CPU: 0 % online
如您所见,内存和 CPU 远高于其他节点实例。我认为 .res() 会终止任务,释放内存并减慢 CPU 速度,但事实并非如此。
我使用 Expressjs,进行了 MVC 模式并将所有逻辑存储在类组件中。有什么办法可以释放这个内存,因为我试图应用某种清理功能,但它没有用:(。我已经开始没有办法确定可能的问题了。也许有很明显,我不注意,但老实说,我在节点方面没有太多经验来找出它。
解决方案
推荐阅读
- php - PHP 推荐从类实例启动数据库连接的方法
- python - 向右滚动时 Python 索引列不会冻结
- jquery - 奇怪的 JQuery 行为
- python - 在 scikit-learn 的 .fit() 方法中使用什么优化算法?
- jenkins - Jenkins:Groovy:不允许使用方法 groovy.lang.GroovyObject getProperty java.lang.String 的脚本
- angularjs - 在 AngularJs、REST API 中读取 cookie
- javascript - 将道具传递给子组件 - React Native
- excel - 重复时可以提取特定单词的Excel公式
- elasticsearch - 强制 react-select 使用 Elasticsearch 显示所有选项
- python - 如何计算与列表中点的距离?