我想使用 Nodejs Worker 线程来处理 CPU 密集型任务。我将为此创建一个可用的工人池。
我的问题是:我应该在池中生成多少工人?
假设我有 4 核 8 线程 cpu - 我应该生成最多 3 或 7 名工作人员(基于内核或线程)吗?我假设我必须为主进程保留 1 个核心/线程。
我想使用 Nodejs Worker 线程来处理 CPU 密集型任务。我将为此创建一个可用的工人池。
我的问题是:我应该在池中生成多少工人?
假设我有 4 核 8 线程 cpu - 我应该生成最多 3 或 7 名工作人员(基于内核或线程)吗?我假设我必须为主进程保留 1 个核心/线程。
我用workerpool做了一些测试。基于这些,我的结论是工作池最多只包含 n - 1 个工作人员,n 是 CPU 拥有的线程数。
例如,如果我有一个 10 核、20 线程的 CPU,我应该在我的池中生成最多 19 个工人。
不确定,但大多数建议的数字取决于 CPU 的数量。
例如,节点使用 4 个工作线程。
在workerpool中,maxWorkers 的默认数量是 CPU 数量减一。当无法确定 CPU 数量时,maxWorkers 设置为 3。