Web Worker 的最佳数量

sta*_*tag 6 javascript web-worker

假设您的 web 应用程序上有一项需要最高性能的任务。该任务是高度可并行化的:您可以将其细分为 500 个独立的子任务。最好的解决方案是什么?

  • (A)仅仅产生 500 个 Web Workers。
  • (B)产生少量t的 Web Workers 并使它们消耗这 500 个任务。

如果(B)是可行的方法,您如何确定(如果需要,根据经验)t的最佳值?是否有任何图书馆可以解决这个特定问题?

sof*_*var 5

使用navigator.hardwareConcurrency以获得最佳网络工作者数量。

浏览器支持 - http://caniuse.com/#search=hardwareConcurrency

不支持的浏览器版本的 Polyfill - https://oswg.oftn.org/projects/core-estimator/demo/

  • 最佳数量是否应该小于“navigator.hardwareConcurrency”,因为操作系统上运行的许多其他进程将竞争这些线程? (2认同)