Šta je to JIT?

Šta je to JIT? JIT je skraćenica od “Just In Time” i koristi se u Android svetu kad se priča o Dalvik JIT kompajleru. Dalvik JIT je dodat u Android sa 2.2 verzijom. On zapravo kompajlira bajtove u nativni mašinski kod u realnom vremenu. Pojednostavljeno, on uzima kod neke aplikacije, analizira ga i konvertuje u nešto što radi brže. Sve ovo se dešava dok aplikacija radi, i zbog toga se i zove “just in time” (na licu mesta). JIT kompajler koji je dizajniran da Android ovo izvodi sa veoma malim vremenom potrebnim za “zagrevanje”, što znači da mu ne treba puno kako bi analizirao kod, pre nego počne sa radom. JIT čuva informacije u keš memoriji telefona, što je zapravo odlična solucija za uređaje sa malo memorije. Optimizovan je da ne zauzima mnogo, oko 100k po procesu, ali i to je dovoljno da utiče na performanse starijih modela kao što su G1 i HTC Magic. Ovo je razlog zbog čega uređaji koji su izašli pre Nexus One telefona nikad nisu dobili oficijelnu verziju, jer imaju hardervske limite.
Sigurno ste čuli “radi brže” ili četiri, pet puta ubrzanje kad god pročitate nešto o Androidovom JIT kompajleru (ubrzanje je očigledno i na ovom benchmark testu gde smo LG GT540 “budžili” na Gingerbread). JIT kompajler jednostavno čuva CPU cikluse, tako da više stvari može da se uradi u toku svakog siklusa. Ovo znači da aplikacije koje uzimaju puno procesorske memorije postaju mnogo brže, a aplikacije koje su limitirane “na rate” (rate-limited – rade dok ne završe šta imaju bez maksimalnog opterećivanja procesora) brže završavaju posao i koriste manje baterije. JITom se ne unapređuju mnogo performanse svih aplikacija, a većina aplikacija pisanih sa NDK ili u nativnom kodu neće videti ubrzanje uopšte, jer ne koriste Dalvik virtualnu mašinu.
Ako vam sve ovo zvuči kao špansko selo, ne brinite ;). Za krajnjeg korisnika (vi i ja) sve što treba da znamo su bolje performanse u većini aplikacija. Svi smo videli koliko su se stvari poboljšale nakon izlaska Froyo verzije, a svakom novom verzijom Android postaje bolji i bolji.
[via AndroidCentral]
Tags: AndroidcachecompilerDalvikfroyoJITJust In Timekompajlerreal timeubrzanje