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。
我想使用 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。