Nodejs 工作线程——我应该在池中生成多少个工作线程?

Nodejs Worker threads - How many workers should I spawn in the pool?

我想使用 Nodejs Worker threads 来处理 cpu 密集型任务。我将为此创建一个工作人员池。

我的问题是:我应该在池中生成多少个工人?

假设我有 4 个内核、8 个线程 cpu - 我应该生成最多 3 个或 7 个工作线程(基于内核或线程)?我假设我必须为主进程保留 1 core/thread 免费。

我用 workerpool 做了一些测试。基于这些,我的结论是工作池最多只包含 n - 1 个工作人员,n 是 cpu 拥有的线程数。

例如,如果我有一个 10 个核心、20 个线程 CPU,我应该在我的池中最多生成 19 个工作线程。

不确定,但大多数建议的数量取决于 CPU 数量。

例如,节点使用 4 个工作线程。

in workerpool maxWorkers的默认数量是CPU数量减一。当无法确定 CPU 数量时,maxWorkers 设置为 3。