+ All Categories
Transcript
Page 1: Performance Optimization for Sencha Touch
Page 2: Performance Optimization for Sencha Touch

Performance Optimization for Sencha Touch

by Tommy Maintz@tommymaintz

Page 3: Performance Optimization for Sencha Touch

ProblemsDOM

EventsDrawing

AnimationsCode execution

Page 4: Performance Optimization for Sencha Touch

Device specific issuesLimited hardware acceleration

Translate3d

Page 5: Performance Optimization for Sencha Touch

DOM: Memory(Size matters)

Page 6: Performance Optimization for Sencha Touch

One small advantagePhones have a limited amount of screen estate

Page 7: Performance Optimization for Sencha Touch

SolutionDestroy components that are not visible on the screen anymore

Page 8: Performance Optimization for Sencha Touch

Cards

Page 9: Performance Optimization for Sencha Touch

Modal Components

Page 10: Performance Optimization for Sencha Touch

Events: Memory

Page 11: Performance Optimization for Sencha Touch

SolutionUse our Event ManagerAutomatic removal of listenersDelegation for Touch eventsUse event delegation when possible

Page 12: Performance Optimization for Sencha Touch

Elements

Page 13: Performance Optimization for Sencha Touch

Components

Page 14: Performance Optimization for Sencha Touch

Drawing: GPU

Page 15: Performance Optimization for Sencha Touch

No small advantageDevices will get faster

Better hardware acceleration

Page 16: Performance Optimization for Sencha Touch

SolutionKeep your DOM structures “light”

Page 17: Performance Optimization for Sencha Touch

Light?Limited amount of advanced CSS3opacity & rgbaborder-radiusgradientstext-shadow & box-shadowsLimit the amount and depth of DOM elements

Page 18: Performance Optimization for Sencha Touch

Don’t go too deep Prevent unnecessary layouts

Page 19: Performance Optimization for Sencha Touch
Page 20: Performance Optimization for Sencha Touch
Page 21: Performance Optimization for Sencha Touch

Animations: GPU

Page 22: Performance Optimization for Sencha Touch

Good enough

Getting There

Little behind

iPhone 3GS+ Most Android 2.2 devices

RIM

Page 23: Performance Optimization for Sencha Touch

SolutionOnly animate “light” DOM structures

Page 24: Performance Optimization for Sencha Touch

Slide to List

Page 25: Performance Optimization for Sencha Touch
Page 26: Performance Optimization for Sencha Touch

Code Execution: Compiler

Page 27: Performance Optimization for Sencha Touch

Not the usual suspectsCPU’s are actually fast enoughJavascript engines are powerful

Page 28: Performance Optimization for Sencha Touch

So what is the problem?

Page 29: Performance Optimization for Sencha Touch

JIT CompilerCompilation time is related to size of file that the method

exists in

Page 30: Performance Optimization for Sencha Touch

Extensive comments and documentation are

Complexity not relevant

Page 31: Performance Optimization for Sencha Touch

Write complicated undocumented code

Solution

Page 32: Performance Optimization for Sencha Touch

Actual solutionTest performance using minified and compressed code

Page 33: Performance Optimization for Sencha Touch

JSBuilder 3Cross-OS packaging, concatenation & minification

Page 34: Performance Optimization for Sencha Touch

Example .jsb3

Page 35: Performance Optimization for Sencha Touch

Questions?


Top Related