Веб-работник медленный ответ - PullRequest
0 голосов
/ 28 ноября 2018

Я хочу справиться с тяжелым процессом с помощью Web Worker, и после некоторых исследований я застрял в задержке ответа моих Workers.

Чтобы упростить, я признаю, что у меня есть только один Web Worker: я создаюВеб-работник, и я звоню postMessage со своими данными.

Я передаю свои данные с помощью ArrayBuffer, чтобы избежать замедления передачи данных из копии.

Я отвечаю непосредственно от моего работника с тем же ArrayBuffer, что и данные

Проблема вследующее: мой ArrayBuffer очень быстро отправляется из моего основного потока на каждый экземпляр моих работников (что-то вроде 1-2 мс), но ответ очень медленный (от 50 до 100+ мс)

Кодследующий

Основной поток:

 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])
}

Я подозреваю, что мой основной поток будет замедлен другой обработкой, поэтому дескриптор сообщениязадерживается на несколько миллисекунд, но я хочу убедиться, что мой код в порядке, и это не известная проблема.

...