hitre aplikacije
DESCRIPTION
Kako pisati hitre aplikacije v AndroiduTRANSCRIPT
1
Hitre aplikacije
Jernej Virag
Jernej Virag | @jernejv | http://www.virag.si
Hitre aplikacije 2
Velike stvari
Majhne stvari
Garbage collector
Hitre aplikacije 3
MERI, MERI, MERI
Hitre aplikacije 4
VELIKE STVARIMakro-optimizacije
Hitre aplikacije 5
Velike stvari
POSTAVITEVTako hitri kot je XML v katerem jih pišemo učinkovit
Hitre aplikacije 6
Velike stvari
POSTAVITEVDrevo vseh vidnih elementov
Hitre aplikacije 7
Merjenjemeasure()
Postavitev
layout()
Risanje
draw()
Velike stvariPOSTAVITEV
!Ponovno merjenje!
Hitre aplikacije 8
Velike stvari
LinearLayoutPreprosto programiranje, a s ceno
Hitre aplikacije 9
Velike stvari
RelativeLayoutKompleksno programiranje za preprosto drevo
Hitre aplikacije 10
Velike stvari
Hitre aplikacije 11
Velike stvari
Ponovna uporaba pogledovListView in vsi ostali prijazno ponudijo elemente za ponovno uporabo
public View getView(int position, View convertView, ViewGroup parent)
Hitre aplikacije 12
Velike stvari
HiearchyViewerPrijatelj vsakega Android razvijalca
Hitre aplikacije 13
Velike stvari
Novi objektiSprožijo GC – čimmanj temboljše
Hitre aplikacije 14
Velike stvari
Skrite alokacijeString StringBuilder
Hitre aplikacije 15
Velike stvari
Skrite alokacijeEnum.values(), Arrays.sort(), for z iteratorji
Hitre aplikacije 16
Velike stvari
DDMSŠe en najboljši prijatelj razvijalca
Hitre aplikacije 17
Velike stvari
ShranjevanjeBaze so kul, SD kartica ne tako zelo
Hitre aplikacije 18
MAJHNE STVARIMikro-optimizacije
Hitre aplikacije 19
Majhne stvari
static15% - 20% hitrejši klici metod
Hitre aplikacije 20
Majhne stvari
static finalNobenih dodatnih klicev
Hitre aplikacije 21
Majhne stvari
setterji/getterji so zlobniDirekten dostop 3x hitrejši kot s preprostim getterjem, 7x hitrejši če imamo JIT
Hitre aplikacije 22
Majhne stvari
for (objekt : zbirka)Prepreči ponovno računanje velikosti zbirke pri vsaki iteraciji…
… za ceno alokacije iteratorja
Hitre aplikacije 23
Majhne stvari
Enumeracije so zlobneDostop do static final konstant neprimerno hitrejši
Hitre aplikacije 24
Majhne stvari
Plavajoča vejica je zlobnaTudi na sistemih z FPU je izvajanje operacij s plavajočo vejico
neprimerno počasnejše
Hitre aplikacije 25
Majhne stvari
Nativne metodeHitro izvajanje z zeloooooooo počasnimi klici
Hitre aplikacije 26
GARBAGE COLLECTORNaš najboljši prijatelj…
… dokler nas ne brcne med noge
Hitre aplikacije 27
Garbage collector
Prijatelj…Čisti našo svinjarijo
Objekt
Objekt
Objekt
Hitre aplikacije 28
Garbage collector
… a z napakoNas med čiščenjem vrže iz stanovanja
Hitre aplikacije 29
Garbage collector
Objekt
Objekt
Objekt
Objekt
Hitre aplikacije 30
Garbage collector
Objekt
Objekt
Objekt
Hitre aplikacije 31
Garbage collector
Zloben?GC freed 16210 objects / 671800 bytes in 243ms
Hitre aplikacije 32
Garbage collector
Še huje!Nedeterminističen
Hitre aplikacije 33
Garbage collector
Čimmanj alokacijGC se bo poganjal redkeje
Hitre aplikacije 34
Garbage collector
Prisilno pobiranje smetiOb pravem trenutku seveda
Hitre aplikacije 35
Garbage collector
Concurrent collectorPrinc na belem konju? – 2.3
GC_CONCURRENT freed 1962K, 44% free 6180K/10951K, external 3744K/4653K, paused 4ms+6ms
Hitre aplikacije 36
?Jernej Virag
@jernejvhttp://www.virag.si