Qualcuno ha fatto un benchmarking o può collegarsi a un articolo su questo argomento? Particolarmente interessato ai risultati IE, in quanto solitamente le prestazioni JS non rappresentano un problema in altri browser.Implicazioni sulle prestazioni dell'uso dello stile funzionale Javascript vs "procedurale"
Vorrei sapere quanto più lento è quello di fare qualcosa di simile:
var numbers = [1, 2, 3, 4, 5, 6, 7];
var results = numbers.map(function() {
// do some stuff
});
invece del tipico:
var numbers = [1, 2, 3, 4, 5, 6, 7];
var results = [];
for (var i = 0; i < numbers.length; i++) {
var number = numbers[i];
var result;
// do some stuff
results.push(result);
}
Io, ovviamente, preferisco lo stile funzionale, ma suppongo extra l'overhead di chiamare una funzione extra per ogni oggetto potrebbe rallentare le cose con grandi collezioni.
Grazie!
Può essere un punto critico, ma IE <9 non implementa nemmeno '[] .map'. Stai rattoppando 'Array.prototype', vero? –
Joe Armstrong, di fama Erlang, dà sempre il consiglio quando gli viene chiesto come questo che i programmatori dovrebbero scrivere i programmi più belli che possono. Codifica nel modo in cui desideri che le tue idee vengano riflesse, utilizzando naturalmente algoritmi di base validi e corretti! - e lascia che i ragazzi che affollano V8, Tracemonkey e JScript si occupino di rendere più veloci le chiamate di funzione. Non impantanarti con un codice che, in un anno, in realtà non renderà le cose più veloci. – Pointy
@Crescent si patching Array.prototype, o usando qualcosa di simile: http://documentcloud.github.com/underscore/ – adamJLev