我正在考虑使用Web Workers进行批量图像处理,并且想知道在性能提升方面会发生什么。
我目前的策略是按顺序处理每个图像,并在当前过程结束后才开始新的过程。如果我有10张图像需要10秒钟才能处理,批量将在~100秒内完成。
如果我一次使用10个Web Workers,我怀疑我会在10秒内完成整个工作。但它会低于100秒吗?如果没有,那么同时运行的Web Workers池是否有最佳大小?
答案 0 :(得分:1)
我认为您的性能提升将在很大程度上取决于计算机中的核心数量。如果我猜测,我会说一个好的甜蜜点可能是四个网络工作者(对应于四核机器),但唯一可以确定的方法就是尝试一下。
以这样一种方式构建代码,您只需更改常量即可更改工作线程数,然后将其设置为似乎最佳工作的值。
答案 1 :(得分:0)
您可以尝试使用此示例进行试验:Ray-tracing with Web Workers在此处使用16个与4个网络工作者相比,显然可以获得巨大的性能提升。