簡體   English   中英

致命錯誤:接近堆限制的無效標記壓縮分配失敗 - 使用 fs 處理大文件時 JavaScript 堆內存不足

[英]FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory when processing large files with fs

我有一個 nodeJs 腳本,它處理一堆大型 .csv 文件(全部為 1.3GB)。 它運行了一會兒並拋出此錯誤:

FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory

我試圖將#!/usr/bin/env node --max-old-space-size=4096放在文件的開頭,但這並沒有解決我的問題......

試圖谷歌它,但幾乎沒有關於我的問題的相關信息..

一旦我不需要文件內容,我可以刷新內存嗎? 我需要為 nodeJs 分配更多內存嗎?

謝謝 ;)

這是我的代碼示例:

fs.readdir(dirName, function(err, filenames) {
    if (err) console.error(err);
    else {
        filenames.forEach(function(filename) {
            fs.readFile(dirName + filename, 'utf-8', function(err, content) {
                if (err) console.error(err);
                else processFile(content);
            });
        });
    }
});

我終於找到了問題的解決方案! 我需要啟動將--max-old-space-size=8192參數添加到節點進程的進程,如下所示:

node --max-old-space-size=8192 ./myScript.js

我處理了我的 1.3GB 沒有問題!!

您可以通過在運行 Snyk 之前運行以下命令來增加分配給該命令的內存量:

Linux/macOS

export NODE_OPTIONS=--max-old-space-size=8192 例如:

export NODE_OPTIONS=--max-old-space-size=8192 snyk 測試 export NODE_OPTIONS=--max-old-space-size=8192 snyk 監視器

視窗

從控制面板轉到系統 -> 高級系統設置 -> 環境變量 -> 新建(用戶或系統)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM