Wie teuer sind Funktionsaufrufe in JavaScript?

8

Ich habe den JavaScript-Code anderer Leute betrachtet und festgestellt, dass viele Programmierer dazu neigen, Funktionen zu erstellen, die mit den Funktionen, die sie aufrufen, kombiniert werden können. Ein Beispiel ist das ; Die 'initWebGL' Funktion könnte mit der 'Start' Funktion kombiniert werden und sie würde genauso funktionieren. Ein anderes Beispiel ist in der Quelle von dies , wo die Funktion "tick", die alle 15 Millisekunden aufgerufen wird, Anrufe tätigt zu zwei anderen Funktionen, die genauso gut mit 'tick' kombiniert werden können. Ich verstehe die organisatorischen Qualitäten, aber ich bin neugierig auf die Auswirkungen auf die Leistung. Machst du diese gute Praxis, besonders wenn man bedenkt, dass JavaScript eine interpretierte Sprache ist?

    
Skofo 17.01.2010, 08:25
quelle

3 Antworten

9

Die beste Vorgehensweise für jede Sprache besteht darin, Code zu schreiben, der zuerst lesbar und wartbar ist, und dann bei Bedarf zu optimieren.

Wenn Ihr Programm schnell genug läuft und in leicht zu verdauende Chunks aufgeteilt wird, dann lassen Sie es so. Wenn es langsam läuft, dann wie Hobodave erwähnt, Profil, um die Ursache der Langsamkeit zu finden.

Wahrscheinlichkeiten sind, dass es durch etwas anderes verursacht wird, als durch das Aufrufen von Funktionen, aber wenn es dadurch verursacht wird, dann beginnt, Funktionen miteinander zu kombinieren, nachdem Sie es aufgespürt haben .

    
pib 17.01.2010, 09:11
quelle
8

Ссылка Folien 10..19

10 000 Aufrufe machen einen Unterschied in IE und Firefox. 1 Anruf nicht.

    
NVI 17.01.2010 09:40
quelle
4

Der beste Weg zu lernen, wie "teure Funktionsaufrufe" sind, eine völlig vage und kontextspezifische Metrik, ist, sie selbst zu profilieren:

hobodave 17.01.2010 08:32
quelle