Hi
Die Zahlen in der 'this'-Spalte beziehen sich auf die 1. Variante im Eingangsposting (deine meth2).
Die 'prototype'-Spalte entsprechend der 2. Variante des Eingangspostings: die Methoden werden nicht im Tree-Objekt sondern im Tree.prototype-Objekt abgelegt. Damit dauert die Identifier Resolution einen Tick länger, das Tree-Objekt (das ja ca 2000fach und verschachtelt vorkommt) ist aber kleiner.
Deine meth3 habe ich nicht implementiert, da meine 2. Variante (Tree.prototype) vermutlich noch besser ist.
Ganz kann ich dein Ergebnis nicht allerdings nicht nachvollziehen, weil mit meth3 ist der Speicheroverhead zwar größer, im Objekthash jedes Nodes kommen 2 zusätzliche Einträge, aber nicht dramatisch. (angenommen ein Eintrag kostet 50 Bytes dann sind dass 200 KB)
meth3 ist ja auch die sparsamste von deinen 3 Methoden.
- Hast du mehr als 2000 Nodes ausprobiert?
Nein.
- meth1 oder meth3?
s.o.
- Handelt es sich bei deinen "Nodes" um DOM-Objekte oder simple selbstdefinierte JS-Objekte?
Letzteres.
Ich werd mal ne Test-Page zusammenstiefeln und den Link hierhinstellen.
Kann gut sein, dass ich was verbockt habe :-/