首页 > 解决方案 > node.js JS 堆内存不足错误 - 无论 max-old-space-size 设置如何

问题描述

我正在使用 Radix-4 FFT 的 JS 实现(这个:https ://www.npmjs.com/package/fft.js )。我正在分析 2^25 个浮点数的序列。该包在具有此大小信号的浏览器端可以正常工作,但在 node.js 上它会崩溃:

致命错误:无效的数组长度分配失败 - JavaScript 堆内存不足

[19262:0x559417f70870] 20352 ms:清除 634.2 (656.1) -> 633.5 (671.6) MB,65.3 / 0.0 ms 分配失败

该过程在崩溃之前仅达到大约 500-600mb,并且更改 max-old-space-size 没有任何区别。就内存管理而言,这个 fft 实现可能不是很好,我只是想在返回使用一些外部脚本(例如 scipy)进行 FFT 之前尝试使用它。无论哪种方式,我都想知道我在这里撞到了什么墙。这可能是一个非常简单的我不知道的..

谢谢


通过在 fft 实现中从普通数组更改为类型化数组来解决 - 节点进程然后使用更多内存但单个对象更小

标签: javascriptnode.jssignal-processing

解决方案


推荐阅读