При сравнении этого теста с Chrome 16 и Opera 11.6 мы обнаруживаем, что
- в chrome native bind работает почти в 5 раз медленнее, чем эмулированная версия bind
- в опере нативная привязка работает почти в 4 раза быстрее, чем эмулированная версия привязки
Где эмулированная версия bind в этом случае
var emulatebind = function (f, context) {
return function () {
f.apply(context, arguments);
};
};
Есть ли веские причины, по которым существует такая разница, или это просто вопрос недостаточной оптимизации v8?
Примечание: этот emulatebind
реализует только подмножество, но на самом деле это не имеет значения. Если у вас есть полнофункциональная и оптимизированная эмулируемая привязка, разница в производительности в тесте все еще существует.