【发布时间】:2022-07-06 21:51:00
【问题描述】:
我对 ArrayBuffer 有疑问。我不明白为什么内存没有释放。也许有人知道如何解决它。
// Main thread
const startLongTask = () => {
setLoading(true);
const worker = new Worker(
new URL("../webworkers/matrix.js", import.meta.url)
);
worker.onmessage = ({ data }) => {
setLoading(false);
console.log(data);
worker.terminate();
};
const matrix = new Uint8Array(1000000000);
worker.postMessage(matrix, [matrix.buffer]);
};
// Worker thread
onmessage = ({ data: matrix }) => {
const matrixView = new DataView(matrix.buffer);
for (let i = 0; i < matrix.byteLength; i++) {
matrixView.setInt8(i, i >= 255 ? 255 : i);
}
postMessage(matrix, [matrix.buffer]);
};
【问题讨论】:
-
这能回答你的问题吗? Memory leak when logging complex objects
标签: javascript web-worker arraybuffer