Your SlideShare is downloading. ×
App performance littleeyelabs
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Saving this for later?

Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime - even offline.

Text the download link to your phone

Standard text messaging rates apply

App performance littleeyelabs

1,379
views

Published on

Published in: Technology, Business

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,379
On Slideshare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. @littleeyelabsmobile app insights like never beforeUnderstanding the why and what ofAndroid app performance
  • 2. @littleeyelabsif customers uninstall, they are lost forever!customers hate apps that drainpower, crash or perform badly“44% of users uninstall apps thatperform badly”“96% of users will give such apps a badrating”Source: http://apigee.com/about/pressrelease/apigee-survey-users-reveal-top-frustrations-lead-bad-mobile-app-reviews
  • 3. @littleeyelabshappens to the best of apps!
  • 4. @littleeyelabsphenomenon is not limited toconsumer apps!“if I had a penny for everytimesomeone complained about my appdraining battery, I would be amillionaire”- Slightly exaggerated quote of a frustratedQA manager in a large MDM companySource: http://apigee.com/about/pressrelease/apigee-survey-users-reveal-top-frustrations-lead-bad-mobile-app-reviews
  • 5. @littleeyelabstop performanceparametersbattery drainnetwork consumptioncrashesresponsiveness
  • 6. @littleeyelabsunderstanding battery consumption!
  • 7. @littleeyelabswhat consumespower
  • 8. @littleeyelabsnetworkcpudisplaygpsgpuoptimizationopportunities
  • 9. @littleeyelabsEDGE slow, less power per byteof data transferWifi more power, but faster3G more power than Wifi, typicallyslower than Wifi.4G more power than 3G, potentiallyfaster than Wifi4G > 3G > Wifi > 2Gnetworkbasics
  • 10. @littleeyelabswhat causespowerconsumption?four primary states -establishmaintain (idle)transmit (two or more substates)tail state (pseudo state)what causespowerconsumption?
  • 11. @littleeyelabsEstablish Maintain Transmit TailWifi High Low Low Low2G Low Low Low Low3G Low Low High Highwhat causespowerconsumption?
  • 12. @littleeyelabsunderstanding state transitions
  • 13. @littleeyelabsprefetch databatch datadetect network stateavoid pollinguse inexact timersuse cachingtips to optimizenetwork power
  • 14. @littleeyelabsprefetch databatch datadetect network stateavoid pollinguse inexact timersuse cachingtips to optimizenetwork power
  • 15. @littleeyelabsprefetch databatch datadetect network stateavoid pollinguse inexact timersuse cachingtips to optimizenetwork power
  • 16. @littleeyelabsprefetch databatch datadetect network stateavoid pollinguse inexact timersuse cachingtips to optimizenetwork power
  • 17. @littleeyelabsprefetch databatch datadetect network stateavoid pollinguse inexact timersuse cachingtips to optimizenetwork power
  • 18. @littleeyelabsprefetch databatch datadetect network stateavoid pollinguse inexact timersuse cachingtips to optimizenetwork power
  • 19. @littleeyelabsvarying download patternmonitor charge level and statemonitor and determinedocking statemonitor connectivity stateprogrammatic control overreceiverstips to optimizenetwork power
  • 20. @littleeyelabsvarying download patternmonitor charge level and statemonitor and determinedocking statemonitor connectivity stateprogrammatic control overreceiverstips to optimizenetwork power
  • 21. @littleeyelabsvarying download patternmonitor charge level and statemonitor and determinedocking statemonitor connectivity stateprogrammatic control overreceiverstips to optimizenetwork power
  • 22. @littleeyelabsvarying download patternmonitor charge level and statemonitor and determinedocking statemonitor connectivity stateprogrammatic control overreceiverstips to optimizenetwork power
  • 23. @littleeyelabsvarying download patternmonitor charge level and statemonitor and determinedocking statemonitor connectivity stateprogrammatic control overreceiverstips to optimizenetwork power
  • 24. @littleeyelabsCPUbasicsruns on various frequenciesfrequency controlled by governorpolicytransitions controlled at linux layerdrops down to ‘deep sleep’ asmuch as it canfrequencies are scaled based ofusage
  • 25. @littleeyelabsCPUspy
  • 26. @littleeyelabsmonitor CPU usage
  • 27. @littleeyelabstips to optimizecpu usagewakelocksgreat power comes with great responsibilitybe conscious about how often/long they areuseduse ‘android:keepScreenOn’spread out your computationallyintensive job
  • 28. @littleeyelabstips to optimizecpu usagewakelocksgreat power comes with great responsibilitybe conscious about how often/long they areuseduse ‘android:keepScreenOn’spread out your computationallyintensive job
  • 29. @littleeyelabstips to optimizecpu usagegpu consumes more power thancpuavoid floating point math where possibleuse gpu for data-parallel tasks likevideo/image processinguse algorithms that consume lessCPU cycleO(n log n) vs O(n 2) algorithmsgoal - keep the freq to the lowestlevel and/or reduce the number ofcycles
  • 30. @littleeyelabstips to optimizecpu usagegpu consumes more power thancpuavoid floating point math where possibleuse gpu for data-parallel tasks likevideo/image processinguse algorithms that consume lessCPU cycleO(n log n) vs O(n 2) algorithmsgoal - keep the freq to the lowestlevel and/or reduce the number ofcycles
  • 31. @littleeyelabstips to optimizecpu usagegpu consumes more power thancpuavoid floating point math where possibleuse gpu for data-parallel tasks likevideo/image processinguse algorithms that consume lessCPU cycleO(n log n) vs O(n 2) algorithmsgoal - keep the freq to the lowestlevel and/or reduce the number ofcycles
  • 32. @littleeyelabstips to optimizecpu usagegpu consumes more power thancpuavoid floating point math where possibleuse gpu for data-parallel tasks likevideo/image processinguse algorithms that consume lessCPU cycleO(n log n) vs O(n 2) algorithmsgoal - keep the freq to the lowestlevel and/or reduce the number ofcycles
  • 33. @littleeyelabsscreen tips color matters!esp on OLED screensdarker the color, lesser the consumptionbrightness levels have more impactprogrammatically reduce brightnessif its suits your app/activity
  • 34. @littleeyelabsimpact of display
  • 35. @littleeyelabscrashes!
  • 36. @littleeyelabstop reasonsrunning out of memoryhitting unexpected conditions inthe appnetwork changesdemand exceeding expectationresponsiveness
  • 37. @littleeyelabsrunning out ofmemoryleaksreferences continue to existGC cannot collect objects, even whennot usedquickly identify which use casedoes not reduce memoryconsumptionuse heap dumps to drill down toactual objectcontinuous heap dumps and diff
  • 38. @littleeyelabsanalyzing memory consumption trends
  • 39. @littleeyelabspre & post-productionanalysis and monitoringdetecting performance impactsbefore and after release is vitalpost-production tracks issues as ithappens with customerscrashlyticscrittercismpre-production analysis helpsprevent issues before customersface itLittle EyeDDMS
  • 40. @littleeyelabsdemo of little eye
  • 41. @littleeyelabs“Things well done and with a care,exempt themselves from fear”William Shakespeare@littleeyelabshttps://angel.co/little-eye-labsalso on