2009. augusztus 29., szombat

JavaScript Comparison operator benchmark

Kiváncsi lettem, hogy vajon az '==' vagy az '===' a gyorsabb JavaScript alatt, emiatt a következő benchmark-okat futtattam:

  1. 'a' === 'a'
  2. 'a' == 'a'
  3. 'aaa' === 'aaa'
  4. 'aaa' == 'aaa'
  5. 111 === 111
  6. 111 == 111
  7. '111' === 111
  8. '111' == 111

Minden mérést többször is lefuttattam, az átlagokat láthatjátok alább:

1.2.3.4.5.6.7.8.
Firefox 278ms78ms78ms78ms78ms78ms78ms78ms
Firefox 357ms59ms56ms56ms56ms53ms54ms253ms
Firefox 3.53ms3ms3ms3ms3ms3ms3ms3ms
Opera 9.6463ms63ms62ms63ms62ms63ms63ms63ms
Opera 10.046ms47ms47ms51ms61ms72ms48ms51ms
Safari 464ms103ms22ms60ms19ms6ms39ms174ms
Chrome 264ms63ms64ms63ms60ms100ms67ms544ms
IE61015ms968ms953ms1000ms125ms109ms547ms687ms
IE7406ms406ms406ms406ms125ms125ms250ms344ms
IE8375ms376ms391ms390ms93ms93ms235ms360ms

A következtetéseket mindenki vonja le maga!

2 megjegyzés:

  1. van pár érdekes szám. Nem tudod mi az oka a firefox3.5 eredményének? lemaradtam a changelogról az utóbbi időben :|

    VálaszTörlés
  2. Firefox 2.0 és 3.0 között csak gyorsítás történt a JS motorban. Firefox 3.5-ben jött be a TraceMonkey, ami egy teljesen újraírt JavaScript motorjuk. Bent beszélgettünk az eredmlnyekről és arra jutottunk, hogy lehet, hogy szimplán kioptimalizálta a teszt kódot a motor, emiatt kb egy üres ciklus futott csak le. Holnap megismétlem a tesztet bent, hogy biztosan lefusson a ciklus magja és ne optimalizálhassa ki a kódrészletet.

    VálaszTörlés