Цитата:
|
я опустил такие уточнения, вроде "Boolean(1) будет true". надеюсь, всем будет понятно то, что я описал.
PS. кстати, имя темы говорит об увеличении производительности в 20 раз, а на практике коэффициент меняется от 1.82 (FF) до 2.5 (CH) |
melky, жаль не могу плюсануть рейтиг за столь исчерпывающий пост, форум не позволяет. Хотел бы кое-что добавить по сдвигам.
alert(16 >> 1); // 16 / 2 alert(16 << 1); // 16 * 2 Насколько мне известно, побитовые сдвиги - одни из самых быстрых операций в компутере ;) Цитата:
|
Цитата:
|
Да наверно перегнул, посмотрев на их результаты, но в любом случаем чем больше данных обрабатываем тем больше и прирост
|
melky, что ж вы как декремент обидели. Он может быть в 2-2.5 раза быстрее.
function stringFill2(x, n){ var s = x, needLength = x.length * n; while(s.length < needLength) s += s; return s.substr(0,needLength); }Хотя это уже и не декремет вовсе получается, блин... Но этот способ не так сильно отстаёт от побитового. |
В продолжении темы
Цитата:
// Преобразование строки (lat.) в верхний регистр с помощью побитового оператора и (&), т.е. сброс бит по маске // ---------------------- // имеем символ "a", код: 01100001 (97) // сброс бит по маске: 11011111 (223) // итог - символ "A", код: 01000001 (65) // ---------------------- var x = prompt("Введите тект английскими буквами в нижнем регистре", "melky") for(var j = [], i = 0; i < x.length; i++) { j[i] = x.charAt(i).charCodeAt(); // получить символ и его код j[i] &= 223; // сброс бит по маске 11011111 (двоичное представление числа 223) j[i] = String.fromCharCode(j[i]); // получить символ из таблицы Unicode-символов } alert(j.join("")); |
Цитата:
спасибо. не знал! |
А есть ли возможность перевести поиск по тексту на такой принцип? и будет ли он эффективнее регулярных выражений?
|
Цитата:
|
Часовой пояс GMT +3, время: 09:35. |