为了账号安全,请及时绑定邮箱和手机立即绑定

node内存溢出问题

node内存溢出问题

白衣染霜花 2018-11-05 13:21:01
查看完整描述

1 回答

?
蝴蝶不菲

TA贡献1810条经验 获得超4个赞

执行文件的时候,使用

node --inspect --expose-gc XXX.js

这里面两个两个 flag --inspact 是告诉它通过chrome devtool 进行调试,--expose-gc 是说你可以通过global.gc()方法主动收集内存。

执行之后就会有一个chrome://协议的链接,粘贴进chrome,就会出现最常见的chrome dev tool,在profile 里面,点击第二栏 Take Heap Snapshot,然后点击Take Snapshot,记录一次当前heap内存使用情况,此时就会出现当前的内存使用情况的快照,然后等一下,让node程序运行一段时间,再记录一次,然后点击左上角的Summary切换成Comparison模式,通过与第一次的对比,找到究竟是什么增加了,就能找到具体的问题。

其次,可以在可疑的代码段前后通过 node 全局变量 process 的 memoryUsage 方法,打印出 heap
究竟的使用量,通过对比代码前后使用量的差别,判断是否有 heap 的泄漏。

通过题主的报错信息,像是 express session 记录时的问题,在写 session 的地方多打断点,通过 process.memoryUsage()方法看看究竟是哪里出了问题,这个需要耐心和运气。


查看完整回答
反对 回复 2018-12-11
  • 1 回答
  • 0 关注
  • 610 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信