如何抑制或改进执行CPU密集型终端命令的节点脚本



不知道该怎么问。我写了一个nodejs脚本,在我的电脑上运行&它调用了一些CPU密集型进程(sox&ffmpeg(以及其中的许多进程。直到某个时刻,一切都很好,但一旦它变得太重,事情就会开始崩溃。

我想知道我该如何改进这样的东西?我是初学者,但我已经尝试了一些东西。我尝试过使用setTimeouts,但我不确定这是否真的有帮助,或者它是否只是在我的脚本上增加了更多的工作。我也尝试过在nodejs中搜索有关去抖动/节流的内容,但我只找到了与API请求相关的内容。

除非拥有数百个CPU核心,否则同时运行数百个CPU密集型进程(如sox和ffmpeg(是毫无意义的。为了给每个进程公平的CPU份额,这会导致过度的进程切换,这会带来自己的开销。

如果将进程数量限制为核心数量,程序将更快地完成,使系统更可用。例如,如果您有8个核心,首先启动8个进程,然后在其中一个进程完成后立即启动下一个进程。

最新更新