中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何解決angularjs內存溢出

發布時間:2020-09-23 15:02:50 來源:億速云 閱讀:398 作者:小新 欄目:web開發

小編給大家分享一下如何解決angularjs內存溢出,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

70% building modules 1345/1345 modules 0 active
<--- Last few GCs --->
ms: Mark-sweep 703.9 (837.9) -> 701.4 (811.9) MB, 331.3 / 0 ms [allocation failure] [GC in old space requested].
ms: Mark-sweep 701.4 (811.9) -> 701.4 (790.9) MB, 350.5 / 0 ms [allocation failure] [GC in old space requested].
ms: Mark-sweep 701.4 (790.9) -> 698.0 (760.9) MB, 433.7 / 0 ms [last resort gc].
ms: Mark-sweep 698.0 (760.9) -> 692.7 (751.9) MB, 328.7 / 0 ms [last resort gc].
<--- JS stacktrace --->
==== JS stack trace =========================================
Security context: 00000298510373A9 <JS Object>
  1: /* anonymous */(aka /* anonymous */) [D:\dev\cobalt_wp\node_modules\webpack\lib\FlagDependencyExportsPlugin.js:77] [pc=0000026F721B51D6] (this=0000029851004131 <undefined>,dep=00000150FC6162C9 <a NormalModule with map 0000025741730C01>)
  2: arguments adaptor frame: 3->1
  3: InnerArrayForEach(aka InnerArrayForEach) [native array.js:~924] [pc=0000026F71EE3DCD] (this=000002985100413...
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

注:這里的代碼并不是我的真實報錯代碼,編譯時間太長,忘記截取了,大致的錯誤基本一樣,如果你遇到了相同的問題,恭喜了,往下看能找到答案!

當時我是蒙圈了,一直都編譯的挺好,怎么突然就溢出了呢?

可能的原因有如下:

1.angular4 在編譯的時候,對CPU和內存的需求比較大,當文件數量很多的時候,可能會出現內存不足的情況(有可能);

2.當代碼出現大量大數據的循環或者死循環(sever階段并沒有出現溢出,這個概率應該不大);

3.angular訂閱的數據在 ngOnDestroy 階段沒有被銷毀,造成大量數據占用內存(有可能)

目前沒有查到具體是什么原因造成的,哪位大神知道的,請不吝賜教,謝謝!

解決這個問題的過程很波折,這里就不說了,你們估計也不想知道,下面說一下解決方案吧:

核心思路是運用v8引擎的舊屬性: --max_old_space_size 來修改內存上線,至于這個屬性在哪里設,就是一個磨人的小妖精了!

修改目錄:  my-project/node_modules/.bin  找到 ng.cmd :

@IF EXIST "%~dp0\node.exe" (
 "%~dp0\node.exe" --max_old_space_size=8192 "%~dp0\..\._@angular_cli@1.0.0@@angular\cli\bin\ng" %*
) ELSE (
 @SETLOCAL
 @SET PATHEXT=%PATHEXT:;.JS;=;%
 node --max_old_space_size=8192 "%~dp0\..\._@angular_cli@1.0.0@@angular\cli\bin\ng" %*
)

修改目錄: my-project/node_modules/.bin  找到 ngc.cmd :

@IF EXIST "%~dp0\node.exe" (
 "%~dp0\node.exe" --max_old_space_size=8192 "%~dp0\..\._@angular_compiler-cli@4.0.1@@angular\compiler-cli\src\main.js" %*
) ELSE (
 @SETLOCAL
 @SET PATHEXT=%PATHEXT:;.JS;=;%
 node --max_old_space_size=8192 "%~dp0\..\._@angular_compiler-cli@4.0.1@@angular\compiler-cli\src\main.js" %*
)

看到里面的--max_old_space_size設置了嗎? 至于數字設多少,你們自己看著辦吧,我的項目比較大,設個大點的值,以防不測,哈哈!

然后執行 ng build --prod ,你以為這樣就行了嗎?這才是關鍵的地方!

本人親測,如上設置,再執行編譯依然會報內存溢出,貌似并沒什么卵用!把當前目錄切換到 my-project/node_modules/.bin 然后再執行 ng build --prod , 世界一下子就和平了! 本人親測有效,收好不謝!

如果你想問,為什么不加 --aot , 這個就留個你自己先想想吧!

好了,忙里抽閑,分享一下這個大坑的填坑方法, 希望對大家有用!

以上是如何解決angularjs內存溢出的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

苍山县| 日照市| 潮安县| 松江区| 县级市| 甘孜县| 云龙县| 高尔夫| 通州区| 临夏市| 崇信县| 清丰县| 太和县| 漾濞| 涪陵区| 寿光市| 习水县| 友谊县| 宁晋县| 梧州市| 德化县| 万宁市| 西贡区| 含山县| 内乡县| 怀化市| 师宗县| 兴安盟| 奉新县| 英山县| 清新县| 察哈| 澄江县| 昭觉县| 凤翔县| 沙田区| 崇信县| 襄樊市| 章丘市| 彩票| 榆林市|