Heim  >  Artikel  >  Web-Frontend  >  Wie können wir den ungefähren Speicherbedarf eines JavaScript-Objekts berechnen?

Wie können wir den ungefähren Speicherbedarf eines JavaScript-Objekts berechnen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-16 19:17:03171Durchsuche

How Can We Calculate the Approximate Memory Footprint of a JavaScript Object?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn