eboye10. decembar 2013.

Dalvik vs. ART

Do sada možda nije obraćano toliko pažnje na ovaj segment Androida, tj. ovu funkcionalnost. Ja sam se u tekstu Šta je to JIT? osvrnuo na ovo:

Š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.

Sada kada je Google sa Androidom 4.4 KitKat predstavio ART (Android Run Time), mnogi se možda pitaju šta je to? Zašto daje ubrzanje? itd. Pa na PocketNow sajtu sam naišao na jako dobro objašnjenje koje ću preneti ovde sa malim izmenama.
Android ima OGROMNU prednost u odnosu na ostale operativne sisteme upravo zato što koristi virtualne mašine da bi pokretao aplikacije. ART koji je stigao sa Androidom 4.4 KitKat obećava ubrzanje, manju potrošnju baterije ...
Ova opcija je po difoltu isključena, sa razlogom. A moj savet je da prvo pročitate ovaj tekst pre nego je upalite.

Šta je virtuelna mašina?

Fizičke mašine su, jelte fizičke. Stvarne, možete da ih dotaknete, vidite itd. To je kompjuter na vašem stolu, laptop, server ... Kada pomislite na kompjuter, verovatno zamišljate upravo fizičku mašinu.

virtual machine

Virtuelne mašine nisu fizičke, ali se pokreću na fizičkom hardveru. Recimo da imate kopmjuter sa Linux operativnim sistemom i hoćete da pokrenete neki program koji ne može da radi na Linuxu, već na Windowsu ili Mac operativnom sistemu. U tom slučaju ćete instalirati neku virtualnu mašinu ili više, za svaki operativni sistem koji vam treba po jednu. Ove virtuelne mašine emuliraju hardver koji je potreban da bi se pokrenuo operativni sistem. Tačnije, možete pokrenuti kompletan Windows u jednom prozoru na Linuxu. Jel to nije kul?
I pored očigledne prednosti pokretanja virtuelne mašine, jedna prednost je veoma bitna, a to je separacija okruženja. Aplikacije koje su pokrenute u VM su kompletno odvojene od okruženja u kom je VM pokrenuta. Virusi, melver, trojanci pa čak i pad sistema ili aplikacije su potpuno odvojeni od glavnog operativnog sistema. Još jedna prednost virtuelne mašine je mogućnost da pokrenu program napisan za arhitekturu koja nije na operativnom sistemu koji je instaliran na računaru, već u virtuelnom okruženju. Na primer, pokrećete program koji je kompajliran da radi na ARM procesorskoj arhitekturi, a vaš računar radi na x86 ili x64 arhitekturi (Intel, AMD).
Da bi doslovno shvatili, pogledajmo Windows Mobile i Pocket PC. Kada su ovi operativni sistemi bili popularni, developeri bi napisali aplikacije, onda ih kompajlirali za nekoliko platformi: ARM verszija 4, Intel XScale, MIPS, ili SH3 procesore. Svaki procesor je imao svoje prednosti i mane, ali su svi zahtevali da se aplikacija kompajlira posebno za njih i da se nadate da će da radi. Kada je Pocket PC najavljen, Microsoft ga je standardizovao na ARM-u.
Današnji uređaji sa Androidom koriste specijalizovane virtuelne mašine u kojima pokreću aplikacije. Developeri napišu kod, koji vi kao krajnji korisnik instalirate preko Play Store-a ili već gde skidate aplikacije. Kod je uglavnom nekompajliran. Ovo znači da je sporiji od kompajliranog koda, ali uređaj dobija prednost koju daje virtuelna mašina a developeri ne moraju da brinu o rekompajliranju njihovog koda da bi se on pokrenuo na nekom drugom procesoru (tablet, PC, TV, sat, pa čak i prsten).

JIT vs. AOT

Kada instalirate aplikaciju na vaš Android uređaj, ona će koristiti Dalvik VM da je kompajlira i pokrene. Koncept ovog procesa se naziva JIT (just-in-time) u slobodnom prevodu u trenutku. Ovo je odličan koncept, ali traži puno resursa za prvo pokretanje aplikacije.
Da rastavimo proces na delove i da vidimo kako radi:
Skinuli ste aplikaciju i instalirali na vaš telefon ili tablet. Ona se nalazi na internoj memoriji u stanju mirovanja dok je ne pokrenete. Kada je pokrenete, Android učita sav nekompajliran kod, kompajlira ga i učita u radnu memoriju (RAM). Dokle god je aplikacija u RAM-u, nakon prvog pokretanja, sve je brzo i glatko. Ako koristite task killer da ručno zaustavite aplikaciju ili izađete iz aplikacije i pređete u neku drugu, aplikacije će biti uklonjena iz RAM memorije i tako osloboditi memorijski prostor koji je koristila. Onog momenta kad je ponovo pokrenete, ceo ovaj proces kreće iz početka.
Android 4.4 KitKat dolazi sa runtime-om "Android RunTime" - ART. Iako nije baš kreativan naziv, veoma je kreativno ono što radi. Za razliku od JIT-a, koji mora da kompajlira aplikaciju pri svakom pokretanju, ART to radi po sistemu ahead-of-time (AOT) ili ti pre vremena. Sa ART-om, kada skinete aplikaciju i instalirate je, ona se automatski prekompajlira. Ovo zauzima više mesta na vašem uređaju i zahteva dužu instalaciju u poređenju sa Dalvik-om. Međutim, aplikacije se pokreću mnogo brže i sam rad aplikacije je mnogo optimizovaniji kada se koristi ART u poređenju sa Dalvik-om. Pošto je manje vremena potrebno da se pokreću aplikacije, vaš procesor koji je radio naporno svaki put kada pokrećete aplikaciju i trošio bateriju, sada to ne radi.

ART je eksperimentalan

laboratorija

ART je trenutno u eksperimentalnoj fazi. Veoma eksperimentalnoj. Ne radi svaka aplikacija dobro sa ART-om. Ako ste već instalirali aplikacije dok je Dalvik bio uključen, moraćete da restartujere uređaj i čekate oko 20 minuta (manje ako imate manje aplikacija, više ako ih imate puno) za prvo paljenje da se završi. ART mora da prekompajlira svaku aplikaciju pojedinačno tako da bude spremna za paljenje. Zbog svega ovoga je ART isključen po difoltu.
Prednosti? Pa iz ličnog iskustva mogu da kažem da telefon radi neverovatno brzo! Ljudi koji su testirali detaljnije kažu da je ubrzanje 50%, pa čak i 100%. Neki tvrde da je potrošnja baterije manja za 25 procenata ili bolje! Međutim, pričamo o Nexusu 4 i 5 koji imaju brutalan hardver i teško da ovo može da se tvrdi sa sigurnošću. Videćemo kad KitKat dobiju slabiji uređaji.
Ja sam testirao ART nekoliko dana i kod mene jedino što nije radilo je Whatsapp i YouTube, ali postoje pečevi koji i ovo popravljaju. Mada ima korisnika koji su se žalili i na neke druge aplikacije.
Ako imate KitKat na telefonu, slobodno probajte, ali nemojte očekivati da sve radi savršeno. Ipak je ovo još uvek eksperimentalno. Možda ART bude stabilan u Androidu 5.0?
Jeste probali ART? Kakvo je vaše iskustvo? Podelite sa nama iskustvo u komentarima ...

eboye
Autor

eboye

Vasilj Milošević
1177 objavljenih tekstova
Čovek koji je uvek tu kada ste u nevolji i koji će vam uvek pomoći svojim savetima i IT iskustvom. Hobi mu je čitanje ChangeLog-a. Posle HTC Hero telefona posedovao je HTC Desire HD, HTC One X, LG Nexus 5, LG G3, LG G4, HTC 10 a sada je ponosni vlasnik Xiaomi Mi Mix 2S telefona. Inače je grafički dizajner po struci, ali se sada bavi programiranjem i zanima ga sve u vezi modernih tehnologija. Čovek pored kojeg morate biti Up To Date je autor na Srbodroidu. (napisala: goldie)

Pratite nas

Slični tekstovi

Šta je to fastboot?
·

Šta je to fastboot?

Šta je to Kernel?
·

Šta je to Kernel?

Šta je to JIT?
·

Š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.