hitre aplikacije

Post on 11-Jun-2015

692 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Kako pisati hitre aplikacije v Androidu

TRANSCRIPT

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

top related