2016-04-01 18 views
0

Optimiert V8 mehrere Funktionsaufrufe, die dieselbe Funktion und dieselben Argumente haben? Im folgenden Beispiel wird Variance zweimal mit den gleichen Argumenten aufgerufen.Funktionsaufrufoptimierung in V8

var Variance = require('variance'); 

function summary(items) {   
    return { 
     variance: Variance(items.value.map((item) => item.value)), 
     standardDeviation: Math.sqrt(Variance(items.value.map((item) => item.value))), 
    }; 
} 
+0

Es wird wahrscheinlich versuchen, aber um Ihren Code kürzer (und einfacher zu pflegen), warum nicht einfach einmal selbst anrufen? – ssube

+0

Warum gibst du es nicht in eine Variable ein? (Ich weiß nicht, ob es eine Optimierung gibt) – rafaelcastrocouto

+0

Dieses Beispiel ist erfunden. Ich bin nur neugierig, ob V8 diese Optimierung macht und hatte Schwierigkeiten bei der Suche nach einer Antwort auf Google. –

Antwort

2

v8 tun Funktionen immer wieder mit den gleichen Argumenten aufgerufen optimieren, aber in Ihrem Beispiel die sind nicht wirklich die gleichen Argumente (sie unterschiedliche Objekt/Array Referenzen).