A Mozilla egyik fejlesztője a közelmúltban elvégzett egy érdekes tesztet, amelyben azt hasonlította össze, hogy egy Android telefonon milyen sebességgel futnak a Java, a JavaScript és a natív kódú programok. Kannan Vijayan tesztjei egyesek számára minden bizonnyal meglepő eredménnyel zárultak: azokban ugyanis a JavaScript-programok jóval gyorsabban futottak, mint a Dalvik VM-en működő társaik - sőt, bizonyos tesztekben még a natív C++ kódok sebességét is lepipálták.

A vizsgálathoz Vijayan a közismert Sunspider benchmark tesztjei közül választott ki néhány fogósat, majd azokat fordította át Java és natív C++ (NDK) változatra - illetve egy JavaScript->C++ konverzió közbeiktatásával asm.js-re is. Aztán az így elkészült programokat "összeeresztette" egymással, és - az időigénytől függően - 10 és 1000 közötti iterációszámmal futtatta őket. Utóbbira azért volt szükség, hogy a Dalvik VM és a JavaScript-kódokat futtató Firefox motor beépített optimizálói a leghatékonyabb futásidejű kódot generálhassák le.

A mért eredmények önmagukért beszéltek: a Java kód minden esetben a leglassabbnak bizonyult, ami minimum 10%-kkal lassabb volt az asm.js és natív kódoknál, de volt olyan teszt, amiben ugyanannak az algoritmusnak a Dalvik VM-en futó változata közel 8x lassabb volt a JavaScript ill. C++ nyelvű verziónál. Ugyanakkor néhány esetben az asm.js ill. a JavaScript még az NDK-val fordított natív C++ kódokat is lepipálta, 10-50%-kal kevesebb idő alatt végrehajtva azokat.

A tesztek között adatmanipulációs, matematikai, valamint 3D-s és sztring-jellegűek egyaránt megtalálhatóak voltak, amik így a különböző reálisan felmerülő alkalmazási területek legnagyobb részét jó arányban lefedték.

A teljes teszt és elemzés itt olvasható.