Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   while vs for (https://javascript.ru/forum/misc/48809-while-vs.html)

newobject 17.07.2014 22:52

Цитата:

Сообщение от bes
время исполнения

Не время а количество.

newobject 17.07.2014 23:00

bes,
Убрал я одну итерацию, протестил, изменений нет, практически.

bes 17.07.2014 23:11

Цитата:

Сообщение от newobject
Не время а количество.

ты о чём

Цитата:

Сообщение от newobject
bes,
Убрал я одну итерацию, протестил, изменений нет, практически.

тест

test = function (fu, i, name) {
	console.time(name)
	while (--i) {
		fu()
	}
	console.timeEnd(name)
}

arr = "foo bar baz flk jdjdj dkkdke jdj".split(" ")

tst1 = function () {
	for (var i = arr.length; i > -1; i--) {
		arr[i]
	}
}
tst2 = function () {
	for (var i = arr.length; i > 0; i--) {
		arr[i]
	}
}


dflt = 1000000
test(tst1, dflt, "ts1")
test(tst2, dflt, "ts2")


хром
ts1: 151.000ms
ts2: 78.000ms

ff
ts1: таймер запущен
ts1: 14.78мс
ts2: таймер запущен
ts2: 7.06мс

newobject 17.07.2014 23:35

bes,
У меня ваш тест показывает приблизительно одинаковое время в обеих браузерах. Протестируйте несколько раз, у вас там что-то не так, возможно побочки были. Разница в пределах 5%.

bes 17.07.2014 23:43

Цитата:

Сообщение от newobject
bes,
У меня ваш тест показывает приблизительно одинаковое время в обеих браузерах. Протестируйте несколько раз, у вас там что-то не так, возможно побочки были. Разница в пределах 5%.

цифры каждый раз разные, от близких до в ~2 раза больших, предполагаю дело в jit-оптимизациях

рони 17.07.2014 23:51

newobject,
ок ссылки возможно по теме а может нет )))https://blogs.oracle.com/greimer/ent..._way_to_code_a

BETEPAH 18.07.2014 00:18

newobject,
для таких тестов есть сервис
http://jsperf.com/loop-vs-indexof/2

newobject 18.07.2014 00:30

BETEPAH,
Спасибо.

рони 18.07.2014 00:41

BETEPAH,
для полного счастья хотелось бы array[i] === 80000 50000 :thanks: или уж random

BETEPAH 18.07.2014 15:29

рони,
Я этот тест делал полтора года назад :)
Там внизу есть кнопка, позволяющая создавать свои ревизии, со своими условиями и прочим.
Удобство этого сервиса в том, что можно просто раздать ссылку и наглядно смотреть результаты как своего теста, так и тестов тех, кому дали ссылку без необходимости публиковать эти результаты на форуме.


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