Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Быстродействие циклов. Вопросы. (https://javascript.ru/forum/misc/32480-bystrodejjstvie-ciklov-voprosy.html)

trikadin 18.10.2012 01:20

Цитата:

Сообщение от Nekromancer
Это от куда такая инфа то? Основной вроде SpiderMonkey. А IonMonkey и JugerMonkey это просто надможества, грубо говоря.

Я имел в виду IonMonkey. Теперь буду знать, что это "надмножество")

Nekromancer 18.10.2012 03:07

Ну и для полного уточнения, SpiderMonkey это VM, а JagerMonkey и IonMonkey это JIT компиляторы. Здесь вот есть отличный тест, что бы увидеть разницу. Запускать соответсвенно в текущем Fx и Nightly, даже лучше Aurora, так уже новый компилятор, но Аврора быстрее Ночной из-за специальной сборки Ночной для разработки. http://jsperf.com/array-create-slice-call-vs-for/4

Arconas 18.10.2012 03:11

Цитата:

Сообщение от Nekromancer (Сообщение 210869)
Arconas,
у вас там замыкания спрошь и рядом.

Идея была взята отсюда

Цитата:

Сообщение от Nekromancer (Сообщение 210869)
сделайте всё отдельно и в одной функции на каждый тест, тогда можно говорить о результатах.

:-? Не совсем понял, что Вы имеете ввиду? Что-то вроде:

function bench(){
var start,stop, result;
start = new Date();
       for(var i=0; i<1000000; i++){
            tArray[i];
        }
stop = new Date();
result = stop - start;
	log.innerHTML = 'for полная запись. Перебор по возрастающей ' + result + ' ms'+'<br/>';

start = new Date();
       for(var i=1000000; i>=0; i--){
            tArray[i];
     }
stop = new Date();
result = stop - start;
log.innerHTML += 'for полная запись. Перебор по убывающей ' + result + ' ms'+'<br/>';

//и так далее?

}


Результаты те же самые с поправкой на цифры. То есть, грубо говоря 1кк раз обошли массив по циклу for(var i=0; i<1kk; i++) и получили 3 ms при проходе i++ и от 0 до 2 ms при проходе i--.

Цитата:

Сообщение от Nekromancer (Сообщение 210869)
И да, jsperf лучше, просто потому, что лучше.

Да... с таким доводом не поспоришь. Непробиваемый :D.

На самом деле jsperf, конечно, лучше. У них своя, как Я понял, библиотека в которой учтены многие факторы за которые меня сейчас пинают. Но только вот документации там не нашел. Только faq. Будет время обязательно опробую jsPerf и проведу тесты там.

Arconas 18.10.2012 03:23

Цитата:

Сообщение от Nekromancer (Сообщение 210908)
Запускать соответсвенно в текущем Fx и Nightly, даже лучше Aurora, так уже новый компилятор, но Аврора быстрее Ночной из-за специальной сборки Ночной для разработки. http://jsperf.com/array-create-slice-call-vs-for/4

Да... разница заметна О_о

melky 18.10.2012 17:51

Цитата:

Сообщение от Arconas
Да... разница заметна О_о

меня тоже поразил прирост.

на линукс пришел FF 16 ... сейчас буду тестить :)


Часовой пояс GMT +3, время: 08:28.