Nyheter
Åpen Artikkel
Hvorfor er Dalvik JIT i 2.2 så unik?
0

Hvorfor er Dalvik JIT i 2.2 så unik?

av Lasse Gullvåg Sætre26/05/2010

[Dette innlegget er en oversettelse  av Dan Bornsteins tekst lagt ut på Android Developers Blog 25.05.2010.]

Som teknisk leder for Dalvik-teamet i Android-prosjektet, bruker jeg min tid på å jobbe med den virtuelle maskinen (VM) og klassebiblioteker i kjernen som sitter under Androids applikasjonsrammeverk. Dette laget er stort sett usynlig for sluttbrukere, men gjort riktig hjelper det Android-enheter til å kjøre jevnt, og forbedrer produktiviteten til utviklere.

2.2-versjonen av Android er spesielt gledelig for meg: Det er den første utgivelse siden 1.0 hvor vi har vært i stand til å levere betydelig ny VM-teknologi, og i motsetning til mye av det andre teamet mitt og jeg gjør, er dette noe som kan oppleves direkte av sluttbrukere.

«Dalvik» er ikke akkurat et husholdningsord (i hvert fall ikke  i mitt land), og de fleste ville ikke kjenne igjen en virtuell maskin hvis den treffer dem i ansiktet. Men når du forteller dem at du er i stand til å gjøre deres eksisterende enheter arbeide bedre – kjøre raskere, bruker mindre batteri – da vil de faktisk merke det!

Hva gjør dette mulig?

Vi har lagt til en Just In Time (JIT) kompilator til Dalvik VM. JIT er en programvarekomponent som tar programkode, analyserer den, og aktivt oversetter den til en form som går raskere, og gjør det mens programmet fortsetter å kjøre. Hvis du ønsker å vite mer om utformingen av Dalvik JIT, vennligst se det utmerkede foredraget fra Google I/O-2010 av mine kolleger Bill Buzbee og Ben Cheng, som bør være lagt opp til YouTube ganske snart.

[Red. Anm. se http://www.youtube.com/user/GoogleDevelopers for tekniske foredrag om dette og mer]

For å være klar, forskjellene er ikke alltid dramatiske, og de gjelder heller ikke uniformt for alle applikasjoner. Kode som er skrevet for å kjøre CPUen all-out kan nå gjøre mer på samme tid (kjører raskere), og kode som er skrevet for å begrense ytelse kan nå få det samme arbeidet gjort og bruke mindre tid og CPU (bruke mindre batteri). På ytelsesfronten spesielt har vi sett realistiske forbedringer fra 2x til 5x for CPU-bundet kode, sammenlignet med forrige versjon av Dalvik VM. Dette tilsvarer ca 4x til 10x raskere enn en mer tradisjonell interpreter-implementering.

Teamet er stolte av vår nye JIT generelt, men vi er spesielt stolte av to aspekter ved den:

Mange tidligere JIT-implementeringer reagerer langsomt, og leverer ytelsesforbedringer først etter en lang oppvarmingsperiode. I ekstreme tilfeller kan det ta minutter eller timer før koden er fullstendig opp til hastighet. Dalvik JIT reagerer derimot raskt, slik at bare øyeblikket etter at du trykker på «Start»-knappen på favorittspillet ditt, drar du allerede nytte av arbeidet til JIT.

Vi er også veldig fornøyd med hvor lite minne JIT bruker. Koden for JIT i seg selv er godt under 100k, og hver prosess som kjører i JIT vil typisk bare bruke enda en 100k (eller rundt det) av minnet. På dagens generasjon av Android-telefoner vil brukere ikke engang legge merke til dette ekstra minnebruket. På min egen telefon kan jeg fortsatt ha bokstavelig talt dusinvis av applikasjoner varmet opp i minnet, og klar til å gå.

Og Dalvik-teamet hviler ikke på laurbærene sine. Vi håper å se Dalvik JIT implementert på mange enheter i de kommende månedene. Om vi ser fremover har vi laget en endeløs liste av ideer for å gjøre VMen og bibliotekkoden bedre, og vi jobber flittig med det.

Kilde: http://android-developers.blogspot.com/2010/05/dalvik-jit.html

0%
0%
0%
0%
0%
Om Forfatteren
Lasse Gullvåg Sætre

Lasse var en av to grunnleggere av Droidnytt og var med frem til slutten av 2012

Kommentarer

Skriv kommentar