JavaScript · Senior · Frage 26 von 75
Warum kann es Code in V8 verlangsamen, Eigenschaften in unterschiedlicher Reihenfolge hinzuzufügen?
- 1V8 sortiert die Eigenschaften bei jedem Zugriff alphabetisch
- 2Die Reihenfolge der Eigenschaften beeinflusst die Leistung der Engine gar nicht
- 3Die Objekte bekommen verschiedene Hidden Classes und lassen sich schlechter optimieren
Antwort zeigen
Richtige Antwort: Die Objekte bekommen verschiedene Hidden Classes und lassen sich schlechter optimieren
Erklärung
Die Engine optimiert den Zugriff auf Eigenschaften nach der „Form“ des Objekts (Hidden Class / Shape). Werden Objekte eines Typs mit unterschiedlicher Reihenfolge oder unterschiedlichen Feldern erzeugt, sieht die Aufrufstelle viele Formen und verliert den schnellen Pfad. Alle Felder gleich im Konstruktor initialisieren und nicht mit delete entfernen.