Javascript記憶體溢位,FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
問題:
在npm run build的時候,提示報錯,報錯資訊如下:TAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory
1: node::Abort() [node]
2: 0x11e7fec [node]
3: v8::Utils::ReportOOMFailure(char const*, bool) [node]
4: v8::internal::V8::FatalProcessOutOfMemory(char const*, bool) [node]
5: v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [node]
6: v8::internal::String::SlowFlatten(v8::internal::Handle, v8::internal::PretenureFlag) [node]
7: v8::internal::Runtime_StringCharCodeAtRT(int, v8::internal::Object**, v8::internal::Isolate*) [node]
原因:
報錯CALL_AND_RETRY_LAST Allocation failed - JavaScript heap out of memory堆記憶體不足,這裡說的JavaScript記憶體不足,其實就是 Node。因為 Node 是基於V8引擎,在一般的後端開發語言中,在基本的記憶體使用上沒有什麼限制。但是在 Node 中通過 JavaScript 使用記憶體時只能使用部分記憶體(64位系統下約為1.4 GB,32位系統下約為0.7 GB),這就是我們編譯專案時為什麼會出現記憶體洩露了。因為前端專案如果非常的龐大,webpack 編譯時就會佔用很多的系統資源,如果超出了V8對 Node 預設的記憶體限制大小就會出現上面的報錯。
解決辦法:
V8提供了選項讓我們使用更多的記憶體。Node 在啟動時可以傳遞 --max-old-space-size 或 --max-new-space-size 來調整記憶體大小的使用限制。如果遇到 Node 無法分配足夠記憶體給 JavaScript 的情況,可以用這個辦法來放寬V8預設的記憶體限制,避免在執行過程中稍微多用了一些記憶體就輕易崩潰。
傳遞 --max-old-space-size 來調整記憶體大小的使用限制,vue直接在package.json中的命令中的 node 後面寫上 --max_old_space_size=4096 就好了,一般設定記憶體大小是4G就可以了,不過具體的大小可以根據自己的專案情況來進行調整。
"scripts": {
"dev": "webpack-dev-server --inline --progress --config build/webpack.dev.conf.js",
"start": "npm run dev",
"build": "node --max_old_space_size=4096 build/build.js"
},
相關文章
- 解決yarn打包時出現“FATAL ERROR: Reached heap limit Allocation failed - JavaScript heap out of memory”的問題YarnErrorMITAIJavaScript
- Composer 記憶體不足解決方案 PHP Fatal error: Out of memory記憶體PHPError
- JavaScript之記憶體溢位和記憶體洩漏JavaScript記憶體溢位
- Android 棧記憶體溢位bug fix小記(pthread_create (1040KB stack) failed: Out of memory)Android記憶體溢位threadAI
- 【記憶體洩漏和記憶體溢位】JavaScript之深入淺出理解記憶體洩漏和記憶體溢位記憶體溢位JavaScript
- Android載入圖片導致記憶體溢位(Out of Memory異常)Android記憶體溢位
- Android記憶體優化(四)解析Memory Monitor、Allocation Tracker和Heap DumpAndroid記憶體優化
- Nuxtjs node memory 記憶體溢位問題UXJS記憶體溢位
- JavaScript閉包(記憶體洩漏、溢位以及記憶體回收),超直白解析JavaScript記憶體
- Java棧溢位|記憶體洩漏|記憶體溢位Java記憶體溢位
- 記憶體溢位記憶體溢位
- Java記憶體溢位Java記憶體溢位
- JBOSS記憶體溢位記憶體溢位
- 記憶體溢位:native溢位 和 上層溢位記憶體溢位
- Jmeter記憶體溢位:java.lang.OutOfMemoryError: Java heap space解決思路JMeter記憶體溢位JavaError
- 記憶體溢位和記憶體洩露記憶體溢位記憶體洩露
- 記憶體洩漏和記憶體溢位記憶體溢位
- WebLogic: 記憶體溢位Web記憶體溢位
- java 程式記憶體溢位Java記憶體溢位
- 記憶體溢位問題記憶體溢位
- 記憶體溢位的分析記憶體溢位
- 手動寫java OOM記憶體溢位 java.lang.OutOfMemoryError: Java heap spaceJavaOOM記憶體溢位Error
- JVM——記憶體洩漏與記憶體溢位JVM記憶體溢位
- 阿里大佬講解Java記憶體溢位示例(堆溢位、棧溢位)阿里Java記憶體溢位
- Android記憶體溢位分析Android記憶體溢位
- Java記憶體溢位情況Java記憶體溢位
- 記憶體溢位的問題記憶體溢位
- Flume記憶體溢位錯誤記憶體溢位
- JNI練習-記憶體溢位記憶體溢位
- FATAL - Fatal error: Target Interaction Manager failed at StartupErrorAI
- JAVA記憶體區域與記憶體溢位異常Java記憶體溢位
- 記憶體洩漏與記憶體溢位神比較記憶體溢位
- [Java基礎]記憶體洩漏和記憶體溢位Java記憶體溢位
- return new物件造成溢位記憶體物件記憶體
- JVM記憶體溢位及合理配置JVM記憶體溢位
- 傳說中的記憶體溢位記憶體溢位
- 解決記憶體溢位九法記憶體溢位
- mybatis-plus getOne 記憶體溢位MyBatis記憶體溢位