Cytat
Myślę że wynik wyczerpuje temat.
Nie zgodzę się! Masz błąd logiczny. Bardzo mnie zdziwiło, że zmienna globalna jest najszybsza. Patrzę w kod, myślę i nie mogę się nadziwić. Aż w końcu zauważyłem, że jak dasz samo var j = 0; to pętla się nie wykonuje w kolejnych cyklach, bo nie zerujesz zmiennej j wraz z jej przebiegiem.
Tak więc nadal test4 jest najwolniejszy. Różnicę pomiędzy innymi rozwiązaniami są zbliżone i u mnie różnią się o około 3ms. Zmieniając test1 na:
Kod
function test1(){
var i=0;
for(i; i <= 100000; ++i){
}
}
Nic się nie zmienia.
Zatem czy nadal uważasz, że 3ms sekundy na miliard! obrotów jest warta zachodu?
U Ciebie z tego co widzę najszybszy jest test3, więc to czym najbardziej walczysz.
Cytat
Motyw z var w pętli zauważyłem podczas pisania własnego FW (krótko po tym jak upadł mintajax, ktoś go jeszcze pamięta?), nie pasował mi czas wykonania i ewentualne zacinki podczas bardziej złożonych animacji na drzewie DOM, kombinowałem z różnymi konfiguracjami, pousuwanie var ze wszystkich pętli przyniosło oczekiwany efekt, wniosek z tego był dla mnie jasny, że var obojętnie gdzie jest, zawsze deklaruje zmienną, a że jest w pętli, deklaruje ją dla każdego obrotu (to nawet logiczne, bo tak też działa warunek i instrukcja krokowa).
Pamiętam! Jeszcze wtedy nie wiedziałem co to jest AJAX i mi ludzie pokazali na tej bibliotece

Powyższe testy trochę przeczą temu co napisałeś. Bo na pewno nie inicjujesz zmiennych miliard razy, a jak widać różnica to kwestie ms, czyli niezauważalne dla człowieka. Możliwe, że miałeś rację, ale przeglądarki zniwelowały różnicę w deklaracjach zmiennych i dlatego dzisiaj już nie ma to znaczenia. Poza tym przy operacji na DOM trzeba szukać optymalizacji właśnie tam, bo nie od dziś wiadomo, że najdłużej zajmuje przerysowywanie elementów w przeglądarce.
Cytat
Nie podam Ci linku z dokumentacji, ponieważ JS jej nie posiada.
MDC
Cytat
Implementacje w przeglądarkach opierają się na standardzie ECMA, który nie zawsze jest przestrzegany, żeby nie napisać, olewany...
Tyle o JS wiem. Trochę siedzę już w tym języku. Wydawało mi się, że pętla for nie jest niczym niezwykłym, a my tu już rozmawiamy o niej 3 dzień! Ale to dobrze. Warto wymieniać się uwagami. Tylko nadal nie jestem przekonany do Twoich racji. I testy nie dowodzą, że masz rację, chyba że nadal robię coś źle, tylko napisz co.
Cytat
Tym się nie przejmuj, wiele ludzi myśli że jak na ich maszynie kod działa wolniej/szybciej to już test autora można włożyć między bajki... a tu przecież o sumę i porównanie chodzi.
No o to mi właśnie chodziło. Nie znam Cię na tyle, więc wolałem napisać, ze chodzi o zależności a nie konkretne wyniki.
Pozdrawiam i czekam na wyjaśnienia.
PS. Z chęcią zobaczyłbym ten FW