#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 дышать ..?