nam: Performance bei Vererbung.

Beitrag lesen

Hi

Etwas ähnliches haben wir kürzlich hier besprochen.

Laufen meine Skripte schneller, wenn ich die dort verwendete Methode benutze? Dauert es wirklich länger, wenn man die "prototype-Chain" abklappern muss?

Die Antwort lautet (wahrscheinlich wie bei allen Performancefragen): Kommt drauf an!

Bei den meisten Scripts ist die Prototype-Chain vergleichsweise kurz. Will sagen, man landet relativ schnell beim window-Objekt, das zumindest in den Browsern das letzte Glied in der Kette darstellt. Zudem sind aktuelle Javascript-Engines ziemlich schnell sind in der Auflösung der Chain. Da dürfte ein solches «Chain-Flattening» zuviel Overhead verursachen.

Das Abflachen der Kette lohnt sich nach meiner Einschätzung also nur, wenn diese tatsächlich ziemlich lang ist und sehr oft auf die (vererbten) Identifier weiter oben in der Kette zurückgegriffen wird.
Konkret mit Zahlen kann ich diese Vermutung aber nicht unterlegen. (*1)

Wenn du's für deine Anwendung genau wissen willst, kommst du in jedem Fall nicht um einen Micro-Benchmark herum, der dann auch in allen Browsern durchgeführt werden sollte.

Gruss,
nam

*1) Bei Zeit und Lust und Gelegenheit kann ich ja mal ein Benchmark kreieren. Ist meistens interessant.