- Chrome 35: 14ms / 640kb
- Firefox 30: 10.3ms
- IE 11: 9.3ms / 520Kb
- Chrome 35: 28ms / 2 080Kb
- Firefox 30: 17.1ms
- IE 11: 2.9ms / 680Kb
// | |
// Closure | |
// | |
var a = []; // хранилище истансов, чтобы они не разрушались (не собирались GC) | |
var getClosure = function(a){ return function(b){ return fn(a, b); } }; | |
var t = performance.now(); | |
for (var i = 0; i < 10000; i++) | |
a.push(getClosure(i)); | |
console.log(performance.now() - t); | |
// | |
// Function#bind | |
// | |
var a = []; | |
var fn = function(a,b){ return a + b; }; | |
var t = performance.now(); | |
for(var i = 0; i < 10000; i++) | |
a.push(fn.bind(null, i)); | |
console.log(performance.now() - t); |
Реальная это как раз та что fn
- а в тесте создаем для нее обертки.
Короткая какая-то функция. Сделай реальную хотя бы строк на 20 :) Может тогда по памяти выиграем.