微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决Nodejs 工作线程 - 我应该在池中生成多少个工作线程?

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

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

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

解决方法

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

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

,

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

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。