Web Worker响应缓慢

时间:2018-11-27 23:43:52

标签: javascript performance web-worker

我想处理Web Worker的繁重工作,经过一番研究后,我陷入了对Workers响应延迟的困扰。

为简化起见,我承认我只有一个Web Worker:我创建了一个Web Worker,并使用数据调用postMessage

我通过ArrayBuffer传递数据,以避免复制导致数据传输变慢。

我直接从工人那里回覆了与数据相同的ArrayBuffer

问题如下:我的ArrayBuffer从我的主线程发送到我的worker的每个实例的速度非常快(大约1-2ms),但是响应非常慢(50到100+ ms)< / p>

代码如下

主线程:

 var now = performance.now()

 myWorker.postMessage(buffer, [buffer])  

 myWorker.onmessage = function(data){
  console.log(performance.now() - now) // 20 to 100+ ms
 }

工人:

onmessage = function(data){
  // ~1 ms
  self.postMessage(data.data, [data.data])
}

我怀疑我的主线程会因其他处理而变慢,因此消息的句柄会延迟这几毫秒,但是我想确保我的代码还可以,这不是一个已知问题。

0 个答案:

没有答案