gpt4 book ai didi

multithreading - V8 内存限制可能会在 Node.js 应用程序中导致哪些不好的事情?

转载 作者:太空宇宙 更新时间:2023-11-04 02:47:42 27 4
gpt4 key购买 nike

我读过一些关于 V8 内存限制的文章。唉,我还是不太清楚。也许这很清楚,但我不想相信。这是我的问题:

我有一个 Node.js 应用程序,它将托管在单个物理服务器中。这个应用程序基本上是一些与视频相关的 CPU 和 RAM 繁重工作的界面。例如,我在此应用程序中使用 FFMPEG 来转码视频。在执行此操作时,我使用 Node.js 的 child_processes。特别是.spawn

我的问题是;由于我在 child_process 中运行 CPU 和 RAM 密集型作业,我是否会连接到 V8 内存限制(在正确设置的 64 位系统中为 1.7GB)?

因为我的FFMPEG进程会耗尽生产中服务器的几乎所有资源。根据服务器配置,它甚至可能使用 32GB 内存和数十个虚拟 CPU 核心。

我想我需要一些关于 child_process 工作原理的解释。

谢谢

最佳答案

子进程本身不会影响V8的内存使用。但是,如果您在内存中缓冲子进程的非常大的输出,则该缓冲区将受到 V8 内存限制的限制。

我所说的缓冲的意思是:

exec('produce --a-gigabyte-of-stdout-output', function(err, stdout, stderr) {
});

或者使用 child_process.spawn() 做类似的事情:

var proc = spawn('produce', [ '--a-gigabyte-of-stdout-output' ]);
var buf = '';
proc.stdout.on('data', function(d) {
buf += d;
});

如果您现在正在做类似的事情,您可能想尝试将数据从子进程流式传输到其他地方,而不是在 Node 进程内缓冲。

关于multithreading - V8 内存限制可能会在 Node.js 应用程序中导致哪些不好的事情?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26278904/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com