hitre aplikacije

36
Hitre aplikacije Jernej Virag 1 Jernej Virag | @jernejv | http://www.virag.si

Upload: jernej-virag

Post on 11-Jun-2015

690 views

Category:

Technology


0 download

DESCRIPTION

Kako pisati hitre aplikacije v Androidu

TRANSCRIPT

Page 1: Hitre aplikacije

1

Hitre aplikacije

Jernej Virag

Jernej Virag | @jernejv | http://www.virag.si

Page 2: Hitre aplikacije

Hitre aplikacije 2

Velike stvari

Majhne stvari

Garbage collector

Page 3: Hitre aplikacije

Hitre aplikacije 3

MERI, MERI, MERI

Page 4: Hitre aplikacije

Hitre aplikacije 4

VELIKE STVARIMakro-optimizacije

Page 5: Hitre aplikacije

Hitre aplikacije 5

Velike stvari

POSTAVITEVTako hitri kot je XML v katerem jih pišemo učinkovit

Page 6: Hitre aplikacije

Hitre aplikacije 6

Velike stvari

POSTAVITEVDrevo vseh vidnih elementov

Page 7: Hitre aplikacije

Hitre aplikacije 7

Merjenjemeasure()

Postavitev

layout()

Risanje

draw()

Velike stvariPOSTAVITEV

!Ponovno merjenje!

Page 8: Hitre aplikacije

Hitre aplikacije 8

Velike stvari

LinearLayoutPreprosto programiranje, a s ceno

Page 9: Hitre aplikacije

Hitre aplikacije 9

Velike stvari

RelativeLayoutKompleksno programiranje za preprosto drevo

Page 10: Hitre aplikacije

Hitre aplikacije 10

Velike stvari

Page 11: Hitre aplikacije

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)

Page 12: Hitre aplikacije

Hitre aplikacije 12

Velike stvari

HiearchyViewerPrijatelj vsakega Android razvijalca

Page 13: Hitre aplikacije

Hitre aplikacije 13

Velike stvari

Novi objektiSprožijo GC – čimmanj temboljše

Page 14: Hitre aplikacije

Hitre aplikacije 14

Velike stvari

Skrite alokacijeString StringBuilder

Page 15: Hitre aplikacije

Hitre aplikacije 15

Velike stvari

Skrite alokacijeEnum.values(), Arrays.sort(), for z iteratorji

Page 16: Hitre aplikacije

Hitre aplikacije 16

Velike stvari

DDMSŠe en najboljši prijatelj razvijalca

Page 17: Hitre aplikacije

Hitre aplikacije 17

Velike stvari

ShranjevanjeBaze so kul, SD kartica ne tako zelo

Page 18: Hitre aplikacije

Hitre aplikacije 18

MAJHNE STVARIMikro-optimizacije

Page 19: Hitre aplikacije

Hitre aplikacije 19

Majhne stvari

static15% - 20% hitrejši klici metod

Page 20: Hitre aplikacije

Hitre aplikacije 20

Majhne stvari

static finalNobenih dodatnih klicev

Page 21: Hitre aplikacije

Hitre aplikacije 21

Majhne stvari

setterji/getterji so zlobniDirekten dostop 3x hitrejši kot s preprostim getterjem, 7x hitrejši če imamo JIT

Page 22: Hitre aplikacije

Hitre aplikacije 22

Majhne stvari

for (objekt : zbirka)Prepreči ponovno računanje velikosti zbirke pri vsaki iteraciji…

… za ceno alokacije iteratorja

Page 23: Hitre aplikacije

Hitre aplikacije 23

Majhne stvari

Enumeracije so zlobneDostop do static final konstant neprimerno hitrejši

Page 24: Hitre aplikacije

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

Page 25: Hitre aplikacije

Hitre aplikacije 25

Majhne stvari

Nativne metodeHitro izvajanje z zeloooooooo počasnimi klici

Page 26: Hitre aplikacije

Hitre aplikacije 26

GARBAGE COLLECTORNaš najboljši prijatelj…

… dokler nas ne brcne med noge

Page 27: Hitre aplikacije

Hitre aplikacije 27

Garbage collector

Prijatelj…Čisti našo svinjarijo

Objekt

Objekt

Objekt

Page 28: Hitre aplikacije

Hitre aplikacije 28

Garbage collector

… a z napakoNas med čiščenjem vrže iz stanovanja

Page 29: Hitre aplikacije

Hitre aplikacije 29

Garbage collector

Objekt

Objekt

Objekt

Objekt

Page 30: Hitre aplikacije

Hitre aplikacije 30

Garbage collector

Objekt

Objekt

Objekt

Page 31: Hitre aplikacije

Hitre aplikacije 31

Garbage collector

Zloben?GC freed 16210 objects / 671800 bytes in 243ms

Page 32: Hitre aplikacije

Hitre aplikacije 32

Garbage collector

Še huje!Nedeterminističen

Page 33: Hitre aplikacije

Hitre aplikacije 33

Garbage collector

Čimmanj alokacijGC se bo poganjal redkeje

Page 34: Hitre aplikacije

Hitre aplikacije 34

Garbage collector

Prisilno pobiranje smetiOb pravem trenutku seveda

Page 35: Hitre aplikacije

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

Page 36: Hitre aplikacije

Hitre aplikacije 36

?Jernej Virag

@jernejvhttp://www.virag.si