Bestimmen des Speicherbedarfs von JavaScript-Objekten
In JavaScript ist das Verständnis des Speicherverbrauchs von Objekten entscheidend für die Optimierung der Leistung und die Vermeidung von Speicherlecks. Dieser Artikel befasst sich mit der Abfrage der Größe eines JavaScript-Objekts und befasst sich mit einer Lösung, die den ungefähren von solchen Objekten belegten Speicher schätzt.
Bestimmen der Objektgröße
In In JavaScript gibt es keine integrierte Funktion, die speziell zur Bestimmung der Größe eines Objekts entwickelt wurde. Eine gängige Technik besteht jedoch darin, die Eigenschaften des Objekts zu durchlaufen und die Größe jedes Grundwerts und jeder Objektreferenz zu berechnen. Bei dieser Schätzung werden die Größen von Datentypen berücksichtigt, z. B. boolean (4 Byte), Zeichenfolge (Länge * 2 Byte) und Zahl (8 Byte).
Implementierung eines Objektgrößenschätzers
Um die Größe eines bestimmten Objekts abzuschätzen, kann eine rekursive Funktion verwendet werden:
function roughSizeOfObject(object) { const objectList = []; const stack = [object]; let bytes = 0; while (stack.length) { const value = stack.pop(); switch (typeof value) { case 'boolean': bytes += 4; break; case 'string': bytes += value.length * 2; break; case 'number': bytes += 8; break; case 'object': if (!objectList.includes(value)) { objectList.push(value); for (const prop in value) { if (value.hasOwnProperty(prop)) { stack.push(value[prop]); } } } break; } } return bytes; }
Beispiel
Verwenden Sie das bereitgestellte Beispiel:
function Marks() { this.maxMarks = 100; } function Student() { this.firstName = "firstName"; this.lastName = "lastName"; this.marks = new Marks(); } const stud = new Student(); const sizeInBytes = roughSizeOfObject(stud); console.log(`Object size: ${sizeInBytes} bytes`);
In diesem Szenario schätzt die Funktion „roughSizeOfObject“ den ungefähren Speicherverbrauch des Stud-Objekts, einschließlich seiner Eigenschaften und verschachtelten Objekte.
Einschränkungen
Es ist wichtig zu beachten, dass diese Technik eine Annäherung darstellt und möglicherweise nicht alle mit dem Objekt verbundenen Speicherzuweisungen berücksichtigt. Darüber hinaus kann der mit Objektreferenzen und -abschlüssen verbundene Mehraufwand zu zusätzlicher Komplexität bei der genauen Bestimmung der Größe führen.
Das obige ist der detaillierte Inhalt vonWie können wir den ungefähren Speicherbedarf eines JavaScript-Objekts berechnen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!