Утечка памяти в getImageData и передача рабочему

#javascript

#javascript

Вопрос:

На моей главной странице есть таймер (1 секунда) для передачи данных рабочему. Код прикреплен, рабочий ничего не делает.

Объем памяти в диспетчере задач продолжает увеличиваться очень быстро, как избежать утечки памяти?

 let canvas = document.getElementById('mycanvas');
let video = this.runtime.ioDevices.video.provider.video;
canvas.getContext('2d').drawImage(video, 0, 0, 640, 480);
let canvas_data = canvas.getContext('2d').getImageData(0, 0, 640, 480).data
window.myWorker.postMessage({ type: "test", file: file, data: canvas_data });
 

Комментарии:

1. Что рабочий делает с данными?

2. @Keith Ничего. Я удалил весь код, остался только один onmessage() . Похоже на ошибку или по замыслу? bugs.chromium.org/p/chromium/issues/detail?id=68190

3. Черт возьми!, это сообщение об ошибке от 2010 года. Если вы клонируете буфер, кажется, это помогает. например. const clone = new Uint32Array(imageData.length); clone.set(imageData); , и использовать это? Единственное, что я бы сказал, внутри как рабочего, так и основного, вы позволяете GC дышать ..?