Gibt es irgendwelche guten Tutorials, wie man schnellen, effizienten Code für v8 schreibt (speziell für node.js)?Quetschen von Leistung aus v8
Welche Strukturen sollte ich vermeiden? Was sind die Idiome, die v8 optimal optimiert?
Gibt es irgendwelche guten Tutorials, wie man schnellen, effizienten Code für v8 schreibt (speziell für node.js)?Quetschen von Leistung aus v8
Welche Strukturen sollte ich vermeiden? Was sind die Idiome, die v8 optimal optimiert?
Aus meiner Erfahrung:
.bind()
ist wirklich langsam in V8 im Momentnew Object()
und new Array()
etwas schneller sind zur Zeit (MICROoptimization, es sei denn, Sie einige verrückte Encoder-Stick mit {}
und []
gerade schreiben)Meine Regeln:
Wenn Sie ein JS-Experte sind und Ihr bereits alle good practices, um Ihren Code anwenden, gibt es kaum etwas, was Sie tun können, um die Leistung zu verbessern.
Wenn Sie Performance-Probleme auftreten:
Danke - Javascript Garden sieht genial aus :) – nornagon
Dies ist ein alter Post, aber ich bin vor kurzem auf ein nettes Video (von Google IO 2012) über genaue Sache gestoßen. Es wurde 2012 veröffentlicht, also haben sich die Dinge ein wenig geändert, aber ich denke nicht viel: http://youtu.be/UJPdhx5zTaw – Pijusn
Die docs geben eine große Antwort: http://code.google.com/apis/v8/design.html
Die Dokumente sind nicht genug. zB: macht v8 Inlining? Wie teuer ist ein Funktionsanruf? Wie teuer ist das Erstellen eines Objekts? Ich möchte wissen, wie clever v8 in einer Vielzahl von Fällen ist, nicht nur bei Immobilienzugängen. – nornagon
Understanding V8 ist ein Satz von Folien aus nicht decamp.eu und gibt sehr interessante Tipps. Insbesondere fand ich die Hinweise zum Vermeiden des "Wörterbuchmodus" nützlich, d. H. Es hilft, wenn Sie die "Form" von Objekten konstant halten und ihnen keine willkürlichen Eigenschaften hinzufügen.
Sie sollen auch Knoten mit --crankshaft --trace-opt --trace-bailout
laufen (die --crankshaft
nur auf 64-Bit-Plattformen zum Beispiel OS X benötigt wird), um zu sehen, ob V8 „Bürgen“ auf Jiting bestimmte Funktionen sind. Es gibt eine Menge anderer Spurenoptionen einschließlich --trace-gc
und verschiedene andere GC-Tracing, die für die Optimierung nützlich sein können.
Lassen Sie mich wissen, wenn Sie spezielle Fragen zu den Folien oben haben, da sie ein bisschen übersichtlich sind. :-) Sie gehören mir nicht, aber ich habe etwas über die Bereiche geforscht, die sie abdecken.
Nur neugierig, aber warum fragst du? Sollten Sie sich nicht mehr darum sorgen, die Leistung der langsamsten (aber weit verbreiteten) Rendering-Engines zu reduzieren als die schnellste? Scheint, dass der Schnellste auf sich selbst aufpassen wird. – mVChr
Ich möchte nur wissen, was V8 nicht mag. Effizienter Code ist mir wichtig. – nornagon
Gute Antwort Nornagon - es ist unglaublich frustrierend, wenn die Frage ignoriert und die Antworten nicht verwandt sind. Auch ich interessiere mich einfach für Interessen willen! –