如何解决angularjs内存溢出

  介绍

小编给大家分享一下如何解决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内存溢出的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

如何解决angularjs内存溢出