微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

我正在exceljs中导出800000行-致命错误:无效的数组长度分配失败-JavaScript堆内存不足NodeJS

如何解决我正在exceljs中导出800000行-致命错误:无效的数组长度分配失败-JavaScript堆内存不足NodeJS

*> [3950:0x4e9b9e0] 1915848 ms:清除5394.1(5861.9)-> 5386.2

(5861.9)MB,12.0 / 0.0 ms(平均亩= 0.933,当前亩= 0.925) 分配失败 [3950:0x4e9b9e0] 1915869 ms:清除5394.4(5861.9)-> 5386.5(5861.9)MB,11.9 / 0.0 ms(平均mu = 0.933,当前mu = 0.925) 分配失败 [3950:0x4e9b9e0] 1915889 ms:清除5394.6(5861.9)-> 5386.7(5861.9)MB,11.7 / 0.0 ms(平均mu = 0.933,当前mu = 0.925) 分配失败

    0: ExitFrame [pc: 0x13da519]
Security context: 0x08de75d40921 <JSObject>
    1: render [0x31fa00a89f09] [/home/ydv/Desktop/larenon/LarenonApi/node_modules/exceljs/lib/xlsx/xform/sheet/cell-xform.js:~197]

[pc = 0xf0cf683583a](this = 0x09a8b99801a9,0x09a8b9980169,0x1b1c280e7299) 2:/ *匿名 /(又名/ 匿名* /)[0x9a8b9980291] [/ home / yd ...

Fatal error: invalid array length Allocation Failed - JavaScript heap out of memory
 1: 0xa0e670 node::Abort() [node]
 2: 0xa0ea9c node::OnFatalError(char const*,char const*) [node]
 3: 0xb83afe v8::Utils::ReportOOMFailure(v8::internal::Isolate*,char const*,bool) [node]
 4: 0xb83e79 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*,char

const *,bool)[节点] 5:0xd32305 [节点] 6:0xd0a661 [node] 7:0xd0c342 v8 ::内部::工厂:: NewUninitializedFixedArray(int)[节点] 8:0xe7df9f [node] 9:0xe7e250 [node] 10:0x102dfab v8 :: internal :: Runtime_GrowArrayElements(int,unsigned long *,v8 :: internal :: Isolate *)[节点] 11:0x13da519 [node] 中止(核心已弃用)*

exports.testExcelCreation = async function () {
                const apiResponse = new ApiResponse();
                const fileName = "assets/Uploads/Reports/TEST/test_report_" + (new Date()).getTime() + ".xlsx";
                const workBook = new ExcelJs.Workbook();
                const sheet = workBook.addWorksheet("Slow And Not Moving");
                console.log("Success : Excel Start Creating : ",moment(new Date()).format("YYYY-MM-DD HH:mm:ss"));
                for (let i=1; i <= 800000; i++) {
                    await commonHelper.handleEndLoopTimeout(0);
                    for (let col=1; col <= 10; coL++) {
                        sheet.getCell(i,col).value = "Value:"+i+"-"+col;
                    }
                    console.log("EXCEL : ",i);
                }
                console.log("Success : Excel End Creating : ",moment(new Date()).format("YYYY-MM-DD HH:mm:ss"));
                FileSystem.mkdirsync("assets/Uploads/Reports/TEST",{recursive: true});
                await workBook.xlsx.writeFile(fileName).then(
                    Response => {
                        console.log("Success : Excel successfully created !")
                    }
                );
                console.log("Success : Excel End Creating : ",moment(new Date()).format("YYYY-MM-DD HH:mm:ss"));
                console.log("FileName : ",fileName);
                apiResponse.opcode = 1;
                apiResponse.numRows = 100;
                apiResponse.data = [fileName];
                apiResponse.message = "Report data available";
                return apiResponse;        
            }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?