Heim  >  Artikel  >  Web-Frontend  >  Wie kann ich die ungefähre Größe eines JavaScript-Objekts im Speicher ermitteln?

Wie kann ich die ungefähre Größe eines JavaScript-Objekts im Speicher ermitteln?

DDD
DDDOriginal
2024-11-16 10:17:03127Durchsuche

How can I determine the approximate size of a JavaScript object in memory?

Bestimmen der Größe eines JavaScript-Objekts

Einführung

Schätzen der Speichernutzung eines JavaScript-Objekte können eine anspruchsvolle Aufgabe sein. In diesem Artikel untersuchen wir eine umfassende Methode zur Bestimmung der ungefähren Größe eines Objekts in JavaScript, inspiriert von einer aktuellen Anfrage zur Ermittlung der Größe eines JavaScript-Objekts.

Lösung des Problems

Betrachten Sie den folgenden JavaScript-Code, der zwei Funktionen, Marks und Student, definiert und einen neuen Student instanziiert Objekt:

function Marks() {
  this.maxMarks = 100;
}

function Student() {
  this.firstName = "firstName";
  this.lastName = "lastName";
  this.marks = new Marks();
}

var stud = new Student();

Objektgröße schätzen

JavaScript verfügt nicht über eine integrierte Funktion ähnlich dem sizeof()-Operator in C. Wir können jedoch eine benutzerdefinierte Funktion entwickeln, um die Größe des Stud-Objekts abzuschätzen:

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;
}

Diese Funktion durchläuft das Objekt rekursiv und berücksichtigt dabei die Größe der Grundwerte (4 Bytes für boolesche Werte, 8 Bytes für Anzahl) und die Länge der Zeichenfolgen in Bytes (Multiplikation mit 2). Außerdem wird eine Objektliste verwaltet, um eine unendliche Rekursion zu verhindern.

Fazit

Mit dieser Funktion können Sie die Größe eines beliebigen JavaScript-Objekts, einschließlich Arrays und benutzerdefinierter Objekte, annähern . Diese Methode kann zur Optimierung der Speichernutzung nützlich sein, insbesondere in leistungskritischen Anwendungen. Obwohl es eher eine Schätzung als einen genauen Wert liefert, bietet es einen wertvollen Einblick in den Speicherbedarf von Objekten in JavaScript.

Das obige ist der detaillierte Inhalt vonWie kann ich die ungefähre Größe eines JavaScript-Objekts im Speicher ermitteln?. 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