Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
p = Net::Ping::External.new('195.54.2.1')
Benchmark.bm do |x|
x.report {100.times do;p.ping;end}
end
var stamp = Date.now();
var iterations = 0;
while(Date.now() - stamp <= 1000){
for (var i = 0; i < 1000; i++) {
instance.check();
}
iterations += 1000;
}
console.log((iterations * 1000 / (Date.now() - stamp)).toFixed(2) + ' iterations per second for ' + note);
449194 iterations per second for self
80822 iterations per second for casual
738261.74 iterations per second for self
91179.39 iterations per second for casual
Идею подхватил в одном из докладов на JSConf EU 2012.
function (names, fields) {
var result = {};
for (var i = 0, c = names.length; i < c; i++) {
result[names[i]] = fields.fetch();
}
return result;
}
function (names, fields) {
return {
"name1": fields.fetch(),
"name2": fields.fetch(),
"name3": fields.fetch()
};
}
он сам оптимизировал свой код экспериментально(алхимия), а не на основе структурированных знаний о V8 (химия)Это как раз то что подвигло меня поделится этим подходом со всеми. Если об этом можно было прочитать в методичке, я бы хмыкнул, и продолжил бы листать :)
result
в словарь зависит от количества полей и некоторых других факторов. eval
'а на V8 нужно избегать как огня — произведенный им код не оптимизируется. хотя в данном конкретном случае это и не важно, потому что основное время тратится в клонировании object literal boilerplate, которое выполняется большей частью в стабе.new Function('global', 'global.alert(global.localStorage.item);')(window);
Почему eval — это не всегда плохо