Jelajahi Sumber

Optimize BinaryWriter memory usage (#591)

- Replace continuous buffer concatenation with a buffer array to reduce intermediate buffer creations.
- This approach mitigates potential memory leaks and improves performance, especially for large files.
keef3ar 1 tahun lalu
induk
melakukan
468fd515e6
1 mengubah file dengan 5 tambahan dan 5 penghapusan
  1. 5 5
      gramjs/extensions/BinaryWriter.ts

+ 5 - 5
gramjs/extensions/BinaryWriter.ts

@@ -1,15 +1,15 @@
 export class BinaryWriter {
 export class BinaryWriter {
-    private _stream: Buffer;
+    private readonly _buffers: Buffer[];
 
 
     constructor(stream: Buffer) {
     constructor(stream: Buffer) {
-        this._stream = stream;
+        this._buffers = [stream];
     }
     }
 
 
     write(buffer: Buffer) {
     write(buffer: Buffer) {
-        this._stream = Buffer.concat([this._stream, buffer]);
+        this._buffers.push(buffer);
     }
     }
 
 
-    getValue() {
-        return this._stream;
+    getValue(): Buffer {
+        return Buffer.concat(this._buffers);
     }
     }
 }
 }