小编给大家分享一下如何解决angularjs内存溢出,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
70%建筑模块1345/1345 0活跃 & lt;——最后几个GCs——→ 女士:标记-清除- 703.9 (837.9)→701.4 (811.9)MB, 331.3/0(分配失败)女士(GC在旧空间要求)。 女士:标记-清除- 701.4 (811.9)→701.4 (790.9)MB, 350.5/0(分配失败)女士(GC在旧空间要求)。 女士:标记-清除- 701.4 (790.9)→698.0 (760.9)MB, 433.7/0(最后gc)女士。 女士:标记-清除- 698.0 (760.9)→692.7 (751.9)MB, 328.7/0(最后gc)女士。 & lt; - - - JS加——→====JS堆栈跟踪=========================================安全上下文:00000298510373 a9 & lt; JS Object> 1:/*匿名*/(又名/*匿名*/)(D: \开发\ cobalt_wp \ node_modules \ webpack \ lib \ FlagDependencyExportsPlugin。js: 77] [pc=0000026 f721b51d6](这=0000029851004131 & lt; undefined>, dep=00000150 fc6162c9 & lt;与地图0000025741730 c01> NormalModule) 2:参数适配器框架:3→1 3:InnerArrayForEach(又名InnerArrayForEach)(本地数组。js: ~ 924] [pc=0000026 f71ee3dcd](这=000002985100413… 致命错误:CALL_AND_RETRY_LAST分配失败——进程的内存
注:这里的代码并不是我的真实报错代码,编译时间太长,忘记截取了,大致的错误基本一样,如果你遇到了相同的问题,恭喜了,往下看能找到答案!
当时我是蒙圈了,一直都编译的挺好,怎么突然就溢出了呢?
可能的原因有如下:
1。angular4在编译的时候,对CPU和内存的需求比较大,当文件数量很多的时候,可能会出现内存不足的情况(有可能),
2。当代码出现大量大数据的循环或者死循环(切断阶段并没有出现溢出,这个概率应该不大),
3。角订阅的数据在ngOnDestroy阶段没有被销毁,造成大量数据占用内存(有可能)
目前没有查到具体是什么原因造成的,哪位大神知道的,请不吝赐教,谢谢!
解决这个问题的过程很波折,这里就不说了,你们估计也不想知道、下面说一下解决方案吧:
核心思路是运用v8引擎的旧属性:——max_old_space_size来修改内存上线,至于这个属性在哪里设,就是一个磨人的小妖精了!
修改目录:我的项目/node_modules/1?找到ng。cmd:
@ if存在“% ~ dp0 \ node.exe"( “% ~ dp0 \ node.exe"——max_old_space_size=8192“% ~ dp0 \ . . \ ._@angular_cli@1.0.0@@angular \ cli \ bin \ ng"% * )其他( @SETLOCAL @SET列出=%列出;. js,=; % 节点——max_old_space_size=8192“% ~ dp0 \ . . \ ._@angular_cli@1.0.0@@angular \ cli \ bin \ ng"% * )
修改目录:我的项目/node_modules/1?找到ngc。cmd:
@ if存在“% ~ dp0 \ node.exe"( “% ~ dp0 \ node.exe"——max_old_space_size=8192“% ~ dp0 \ . . \ ._@angular_compiler-cli@4.0.1@@angular \ compiler-cli \ src \ main.js"% * )其他( @SETLOCAL @SET列出=%列出;. js,=; % 节点——max_old_space_size=8192“% ~ dp0 \ . . \ ._@angular_compiler-cli@4.0.1@@angular \ compiler-cli \ src \ main.js"% * )
看到里面的——max_old_space_size设置了吗?至于数字设多少,你们自己看着办吧,我的项目比较大,设个大点的值,以防不测,哈哈!
然后执行ng构建——刺激,你以为这样就行了吗?这才是关键的地方。
本人亲测,如上设置,再执行编译依然会报内存溢出,貌似并没什么卵用!把当前目录切换到我的项目/node_modules/1救缓笤僦葱衝g构建——刺激,世界一下子就和平了!本人亲测有效,收好不谢!
如果你想问,为什么不加,aot这个就留个你自己先想想吧!
好了,忙里抽闲,分享一下这个大坑的填坑方法,希望对大家有用!
以上是如何解决angularjs内存溢出的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!