czwartek, października 29, 2009

A JavaScript i tak szybszy ;-)

Gdy pisałem posta o prędkości różnych języków w pewnym specyficznym zastosowaniu, którym było liczenie całki z e-x2 kusiło mnie by zrobić test z JavaScriptem, ale uznałem, że to przecież tak wolne jest, że nie ma sensu.........

Jakże się myliłem! :-)

Na moim laptopie [czyli profesor 2.2 GHz Core 2 Duo z 4GB RAM pod Windows 7] średni wyniki wykonania 1 iteracji w której całkowana była funkcja f(x)=e-x2 w przedziale lewostronnie domkniętym od -10 do 10 w 10 tysiącach kroków, a samych iteracji wykonanych było tysiąc, przedstawiają się następująco:
Mozilla Firefox 3.5.4 - 1.380 ms
Google Chrome 4.0.223.11 - 2.514 ms

IE 8 odpadło bo za każdym razem krzyczało, że skrypt wykonuje się zbyt długo, ale gdy trochę go zmieniłem [przez zmniejszenie ilości iteracji z 1000 do 100] to IE 8 potrzebował 15.28 ms.

Jak nie wierzycie to tutaj macie "tester" :-) [Jedna uwaga, odpalajcie go w FF lub Chrome, IE odpada i Opera raczej też].

Dla porównania na tym laptopie wyniki poprzedniego testu wyglądają tak [dane podałem już w komentarzach do poprzedniego posta, ale sprawdziłem je ponownie i w przypadku C przez głupi błąd były one mniejsze o 1 rząd]:
C 32bit [kompilator z Dev-Cpp] - 1.54 ms
C 64bit [lcc-win32 64bit] - 6.97 ms
Java 32bit - 4.7 ms
Java 64bit - 3.8 ms
.NET 64bit - 14 ms
Python 2.5.2 32bit - 10.3 ms
Python 2.5.4 64bit - 10.16 ms

Wyszło więc, że akurat w tym zastosowaniu JavaScript jest wydajniejszy od C ;-)
Nie potrafię wyjaśnić dlaczego tak jest, ale i tak to cieszy ;-)


Podobne postybeta
Java 32 bit vs. Java 64 bit
32 bity vs. 64 bity, tym razem C++ ;-)
C# i Java okazały się szybsza od Pythona :-) [było Java okazała się szybsza od C# i Pythona]
Koszmarek - Small Basic ;-)
Sarkania na C++