Показать сообщение отдельно
  #33 (permalink)  
Старый 07.02.2013, 11:49
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Gozar
Насколько мне известно применение побитовых операций в js не приводит к увеличению скорости, а скорее наоборот.
Тут можно еще поспорить:
function test1(defs) {
    return {1:0, 2:2, 4:1}[defs];
}

function test2(defs) {
    return (defs & ~1) % 3;
}

function test3(defs) {
    return [0,0,2,,1][defs];
}

var lastTime=(new Date()).getTime();
for(var i = 0; i < 100000; i++) {
    test1(i & 1);
}
alert("Время заняло с использованием объекта (ms): " + ((new Date()).getTime()-lastTime));

var lastTime=(new Date()).getTime();
for(var i = 0; i < 100000; i++) {
    test2(i & 1);
}
alert("Время заняло с использованием битов (ms): " + ((new Date()).getTime()-lastTime));

var lastTime=(new Date()).getTime();
for(var i = 0; i < 100000; i++) {
    test3(i & 1);
}
alert("Время заняло с использованием массива (ms): " + ((new Date()).getTime()-lastTime));


Opera 12.13:
Время заняло с использованием объекта (ms): 61
Время заняло с использованием битов (ms): 17
Время заняло с использованием массива (ms): 20
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine

Последний раз редактировалось devote, 07.02.2013 в 11:51.
Ответить с цитированием