2

我正在考虑使用 Web Workers 来进行批量图像处理,并且想知道在性能提升方面会发生什么。

我目前的策略是按顺序处理每个图像,只有在当前进程结束后才开始一个新进程。如果我有 10 张图像,每张图像需要 10 秒来处理,那么批处理将在大约 100 秒内完成。

如果我一次使用 10 个 Web Worker,我怀疑我会在 10 秒内完成整个工作。但它会低于 100 秒吗?如果没有,并发运行的 Web Worker 池是否存在最佳大小?

4

2 回答 2

1

我想您的性能提升将在很大程度上取决于您计算机中的内核数量。如果我猜的话,我会说一个好的最佳位置可能是四个网络工作者(对应于四核机器),但唯一确定的方法是尝试一下。

以这样一种方式构建您的代码,您可以简单地更改一个常量来更改工作人员的数量,然后将其设置为一个似乎可以最佳工作的值。

于 2012-12-13T18:47:49.093 回答
0

您可以尝试使用以下示例进行实验:使用 Web Worker 进行光线追踪 在这里使用 16 对 4 个 Web Worker 显然会带来巨大的性能提升。

于 2012-12-19T14:17:36.007 回答