我想使用Nodejs Worker threads 来处理需要大量cpu的任务。我会创建一个可用于此目的的工作线程池。
我的问题是:我应该在池中生成多少个工作线程?
假设我有4个内核和8个线程的CPU - 我应该生成最多3个或7个工作线程(基于内核或线程)?我假设必须为主进程保留1个内核/线程。
我想使用Nodejs Worker threads 来处理需要大量cpu的任务。我会创建一个可用于此目的的工作线程池。
我的问题是:我应该在池中生成多少个工作线程?
假设我有4个内核和8个线程的CPU - 我应该生成最多3个或7个工作线程(基于内核或线程)?我假设必须为主进程保留1个内核/线程。
我用workerpool进行了几项测试。因此,我的结论是,worker pool最多只包含n-1个工作线程,其中n是一个CPU的线程数。
例如,如果我有一颗10核20线程的CPU,我应该在我的池中最多只生成19个工作线程。
不确定,但大多数建议的数量取决于CPU的数量。
例如,node使用4个工作线程。
在workerpool中,默认的maxWorkers数量是CPU数量减一。当无法确定CPU数量时,maxWorkers设置为3。