Тема: while vs for
Показать сообщение отдельно
  #1 (permalink)  
Старый 17.07.2014, 18:43
Профессор
Посмотреть профиль Найти все сообщения от newobject
 
Регистрация: 10.07.2014
Сообщений: 145

while vs for
сделал прогонку 1000000 раз.

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=0; i<arr.length; i++){arr[i]}
	}
	 
	tst1_a=function(){
	for(var i=arr.length; i>-1; i--){arr[i]}
	}
	 
	tst2=function(){
	var i = arr.length
	while(i--){arr[i]}
	}
dflt=1000000
test(tst1, dflt, "ts1")
test(tst1_a, dflt, "ts1_a")
test(tst2, dflt, "ts2")

//ts1: 23ms
//ts1_a: 263ms
//ts2: 41ms


Как видно, while сливает в 2 раза почти, но 2-й for просто фантастически медленный. Интересно, почему? Тестировал на ноде.

Последний раз редактировалось newobject, 17.07.2014 в 19:41.
Ответить с цитированием