I have a problem with ArrayBuffer. I don't understand why memory not frees up. Maybe someone knows how to fix it.
  // 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]);
};
 
     
    