V8 verwenden Sie eine versteckte Klasse, um einen Offset des Schlüssels zu behalten, so dass der Wert des Schlüssels sehr schnell nachgeschlagen werden kann. Aber welche Art von Datenstruktur verwendet, um die Offset "Karte" zu speichern, habe ich gelesen post, es verwenden eine Es6-Map für die Simulation, aber die Karte scheint eine Hash-Tabelle zu verwenden, irgendwie langsam, nicht wahr?V8 versteckter Klassenindex Lookup
0
A
Antwort
0
die Karte scheint eine Hash-Tabelle zu verwenden, irgendwie langsam, nicht wahr?
Nein. Hash-Tabellen sind ziemlich schnell und noch besser: Inline-Caches (über die Sie gelesen haben) sind alle da, um die Notwendigkeit für diese Nachforschung vollständig zu eliminieren.
+0
Kann ich sagen, dass die es6 Map keine versteckte Klasse erstellt? Aber wie kann es eine feste Struktur beibehalten? Irgendwelche Ressourcen? – viclm
Sie sollten die Post lesen. Es implementiert eine alternative Offset-Karte ohne Hash-Tabelle –
Ich glaube nicht, es verwendet eine ES6-Karte für Offset-Karte in einer versteckten Klasse – viclm
Sie irren Eigentum Zugriff und versteckten Klassenzugriff. 'CompileNamedLoadFastProperty' verwendet Offset, nicht Hashtabelle –