Node打包堆栈溢出?慌什么!淡定!
九月 16, 2021
本文共计:
555 字
预计阅读时长:
2分钟
今天是周五,可是为什么我却一点也感受不到周五的快乐呢?可能是明天需要再补班的缘故吧!hhhhh
问题不大,牢骚话暂时略过,今天主要记录下工作上碰到的问题,以及我是怎么解决的。
起因
我还是像往常一样,帮同事在jekins
上构建代码,我在等待着我的机器人通知我,构建完成的消息,等了10
分钟、20
分钟…..,终于,耐不住一看界面,打包失败!
我直呼一个好家伙!立马clone
项目,本地打包,本地打包是ok
的。
然后询问同事,是不是加了新代码:”确实是引入了一个新的包”。
打开了analyze
分析工具一看:3.5M
未压缩,够大!
经过
好奇的我,打开了jekins
构建日志:
<--- Last few GCs --->
[103099:0x310aab0] 392901 ms: Scavenge 1343.8 (1424.1) -> 1342.9 (1424.6) MB, 16.4 / 0.0 ms (average mu = 0.117, current mu = 0.025) allocation failure
[103099:0x310aab0] 394779 ms: Mark-sweep 1344.0 (1424.6) -> 1343.1 (1424.1) MB, 1853.9 / 0.0 ms (average mu = 0.078, current mu = 0.037) allocation failure scavenge might not succeed
<--- JS stacktrace --->
==== JS stack trace =========================================
哟嚯,GC
内存不够了,怎么解决呢?
当然是上google
咯!
可以是:直接执行
也可以是:设置系统的环境变量
也可以是:设置执行时环境变量
stackoverflow回答地址 : https://stackoverflow.com/questions/38558989/node-js-heap-out-of-memory
结果
最终,当然是生效啦,但是你以为这就结束了吗?
No
、No
、No
,才刚开始!
为什么会内存不够呢?
我打开了v8
查询那个设置参数:
其实这个搜索关键字也是观察jekins
日志发现的:
哟嚯,是不是,惊人的相似,请把可能二字去掉。
然后,我们去命令行看下这个鬼东西:
然后注意下箭头标注的,然后计算下最终的内存大小,以G
为单位:
再回过头来看下,Node
官文中的说明:
老的Node
版本,基本在1.5~1.7G
左右,一旦打包时候的空闲内存少了,就会这样。
到此为止,这个问题的根已经被小王拔起了,期待下次分享~
查看评论