【发布时间】:2021-03-22 06:35:13
【问题描述】:
我正在使用 Node.Js 和大文件。我正在调用 python 脚本的子进程来处理这些大文件。现在的问题是,在大文件上,内存耗尽,节点 js 通过杀死它来中止进程。我知道 --max-old-space-size 但我不只是想限制大小。如果内存不足,我希望 node.js 继续处理该进程。 F
例如,Node.js 在 1 分钟内执行一个允许 2GB 内存的进程。我将内存大小限制为 1GB 内存,它应该在 2 分钟内运行该过程但不会出错。它应该使用队列或其他东西。
编辑: 这是我使用 spawn 从子进程执行的命令。
let extExecCommand = "cat file.json | python sample-script.py > output-file"
let extensionScript = childProcess.spawn(extExecCommand, {shell: true});
当file.json的大小很大时,节点中止进程并杀死子进程。我不希望这种情况发生。我希望 node js 继续执行该过程并维护某种类型的数据结构。
【问题讨论】:
-
您没有展示您实际尝试执行的操作或您的任何代码(这使得您很难知道如何提供帮助),但通常您希望将文件分成更小的部分来处理作为流、行或某种块的形式,这样您就不必一次将整个文件放在内存中,而只需其中的一小部分。如果你展示你的实际代码,这里的问题几乎总能得到更好更快的答案,这样我们就可以准确地看到你想要做什么。
-
@jfriend00 请检查我的编辑。
标签: javascript node.js memory-management