typescript / intermediate
Snippet
Schnelle Buffer-Operationen mit feste-Länge Typed Arrays
Typed Arrays speichern primitive Zahlen in zusammenhängenden Speicherblöcken, wodurch Garbage-Collection-Pausen und der Overhead dynamischer Array-Größenanpassungen vermieden werden.
snippet.ts
typescript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Int32RingBuffer {private buffer: Int32Array;private head: number = 0;constructor(capacity: number) {this.buffer = new Int32Array(capacity);}public push(value: number): void {this.buffer[this.head % this.buffer.length] = value;this.head++;}public getRawData(): Readonly<Int32Array> {return this.buffer;}}
Erklärung
1
private buffer: Int32Array;
Nutzt einen hochperformanten, zusammenhängenden Speicherblock fixer Größe für 32-Bit-Integer.
2
this.buffer = new Int32Array(capacity);
Allokiert im Voraus Speicher für das Typed Array, um dynamische Reallokationskosten zu vermeiden.
3
this.buffer[this.head % this.buffer.length] = value;
Implementiert zirkuläre Indexberechnung für schnelle O(1) Überschreib-Semantik.
4
public getRawData(): Readonly<Int32Array> {
Stellt schreibgeschützte Views über Typed Array Buffers bereit, ohne internen Speicher zu kopieren.