SlideShare una empresa de Scribd logo
1 de 24
Descargar para leer sin conexión
Thinking of CPU & Memory
  (Code for Responsiveness)
La aplicación funciona
       Terminado!
Por que?

1 de cada 4 personas abandona una web que
     tarda más de 4 segundos en cargar
Por que?

● Amazon: +100ms = -1% ventas
● Google: un incremento de 0.4 segundos a
  0.9 segundos en carga de pàgina equivale a
  un descenso de tràfico e ingresos del 20%
● Apps móviles?
Cada vez somos más
  vagos exigentes
El concepto
Caso clásico:
1.   Descargas datos (cache de Strings)
2.   Parseas (cache de objetos)
3.   Descargas más datos: imágenes, etc (LruCache)
4.   Cargas en memoria (mantenerlos en memoria)
5.   Los muestras en pantalla
Don't be a Java Hero

"Tengo la impresión de que Java fue diseñado
para hacer que fuera difícil escribir mal código,
mientras que Python está diseñado para hacer
    que sea sencillo escribir buen código."
              – Magnus Lycka
Como?
●   Las splash-screens són malignas
●   No hacer trabajos en el UI Thread
●   No bloquear la UI (ProgressDialogs...)
●   No descargar los mismos datos 2 veces
    ○ nos centraremos en este punto
Strict Mode
.penaltyLog()
.penaltyDeath()
Red
(Enemigo nº 1)
Red (Análisis)

DDMS (Network Statistics)
Red (tip 1)

      12s -> 0.4s (wifi mala, móvil bueno)
Red (tip 2)

LruCache+DiskLruCache

● Displaying Bitmaps Efficiently (Android
  Developers)
● https://github.
  com/koush/UrlImageViewHelper
   ○ No gestiona bien vistas recicladas (aún)
CPU
No todos los móviles son de 4 núcleos
CPU (Análisis)

Traceview (code y DDMS)
Guardar i leer object
         7s -> 0.8s (móvil malo)
Mostrar datos
viejos siempre
Memória RAM
Si no compartes, te echan
Mantener la aplicación en memoria (Análisis)

$ adb shell procrank
Mantener la aplicación en memoria (Tip)
Otras utilidades
●   Heap dump (memoria por objetos)
●   Eclipse MAT (memoria por objetos)
●   PerfMon (memoria, cpu, red en float)
●   Usage Timelines Pro (cpu, memoria)
●   traceview (cpu)
Detectar regresiones
● Guardar un long en Application y mostrar un
  Toast con la diferencia al mostrar los
  primeros datos
● Enviar por analytics velocidades de boot
"La optimización prematura es la raíz de
           todos los males"
            "Donald Knuth"
Reférencias
● Google I/O 2012 - Doing More With less: Beign a Good
    Android Citizen
●   Designing for Performance (developer.android.com)
●   "Displaying Bitmaps Efficiently" Android Developers




twitter: @oriolj
+Oriol Jiménez

Más contenido relacionado

Destacado (20)

MANIFIESTO DEL PARTIDO COMUNISTA
MANIFIESTO DEL PARTIDO COMUNISTAMANIFIESTO DEL PARTIDO COMUNISTA
MANIFIESTO DEL PARTIDO COMUNISTA
 
Power point
Power pointPower point
Power point
 
Canal zoom de mentes
Canal zoom de mentesCanal zoom de mentes
Canal zoom de mentes
 
Presentación copia
Presentación copia Presentación copia
Presentación copia
 
Proyectos introduccion y formualcion
Proyectos introduccion y formualcionProyectos introduccion y formualcion
Proyectos introduccion y formualcion
 
Issues of production curtis callow
Issues of production curtis callowIssues of production curtis callow
Issues of production curtis callow
 
Conspiração Informa | 11° edição
Conspiração Informa | 11° ediçãoConspiração Informa | 11° edição
Conspiração Informa | 11° edição
 
Power point musica
Power point musicaPower point musica
Power point musica
 
Estudar vale a pena
Estudar vale a penaEstudar vale a pena
Estudar vale a pena
 
El cuento
El cuentoEl cuento
El cuento
 
Palestra sebastião campello - centro de estudos do nordeste - 07.11.11
Palestra   sebastião campello - centro de estudos do nordeste - 07.11.11Palestra   sebastião campello - centro de estudos do nordeste - 07.11.11
Palestra sebastião campello - centro de estudos do nordeste - 07.11.11
 
7. proyecto pedagógico maruamake
7. proyecto pedagógico maruamake7. proyecto pedagógico maruamake
7. proyecto pedagógico maruamake
 
Brochure - Analytics in the Cloud
Brochure - Analytics in the CloudBrochure - Analytics in the Cloud
Brochure - Analytics in the Cloud
 
Ana presentacion
Ana presentacionAna presentacion
Ana presentacion
 
LST-G do Reto
LST-G do RetoLST-G do Reto
LST-G do Reto
 
Apresentação IVAN FEITOSA - LIMOEIRO - 18.11.11
Apresentação IVAN FEITOSA - LIMOEIRO - 18.11.11Apresentação IVAN FEITOSA - LIMOEIRO - 18.11.11
Apresentação IVAN FEITOSA - LIMOEIRO - 18.11.11
 
Automatizacion
AutomatizacionAutomatizacion
Automatizacion
 
The twilight saga (1)
The twilight saga (1)The twilight saga (1)
The twilight saga (1)
 
Apresentação ivan
Apresentação ivanApresentação ivan
Apresentação ivan
 
Slideshare mod-4-sirleychioca
Slideshare mod-4-sirleychiocaSlideshare mod-4-sirleychioca
Slideshare mod-4-sirleychioca
 

Similar a Pensando en CPU, Memoria y Red para la Optimización de Aplicaciones Móviles

Thinking of CPU and Memory (2.0)
Thinking of CPU and Memory (2.0)Thinking of CPU and Memory (2.0)
Thinking of CPU and Memory (2.0)Oriol Jiménez
 
Web Performance Optimization
Web Performance OptimizationWeb Performance Optimization
Web Performance OptimizationMartín .
 
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Martin Siniawski
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web EscalableAlex Puig
 
Cloud para tu juego en una tarde
Cloud para tu juego en una tardeCloud para tu juego en una tarde
Cloud para tu juego en una tardeIgnacio Segura
 
Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020Maximiliano Firtman
 
Destripando y protegiendo aplicaciones android
Destripando y protegiendo aplicaciones androidDestripando y protegiendo aplicaciones android
Destripando y protegiendo aplicaciones androidSergio Arcos
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]RootedCON
 
Trabajo práctico diagnostico
Trabajo práctico diagnosticoTrabajo práctico diagnostico
Trabajo práctico diagnosticoEmi B Teran
 
Desarrollo de apps móviles desde cero
Desarrollo de apps móviles desde ceroDesarrollo de apps móviles desde cero
Desarrollo de apps móviles desde ceroInitsogar
 
La plataforma educativa libre OpenSWAD.org
La plataforma educativa libre OpenSWAD.orgLa plataforma educativa libre OpenSWAD.org
La plataforma educativa libre OpenSWAD.orgAntonio Cañas Vargas
 
NTICs Consulta Historia del Internet, Navegadores Web y Motores de Busqueda.
NTICs Consulta Historia del Internet, Navegadores Web y Motores de Busqueda.NTICs Consulta Historia del Internet, Navegadores Web y Motores de Busqueda.
NTICs Consulta Historia del Internet, Navegadores Web y Motores de Busqueda.darwin_xsiempreemo
 
Si tu aplicación no responde rápido pierdes clientes
Si tu aplicación no responde rápido pierdes clientesSi tu aplicación no responde rápido pierdes clientes
Si tu aplicación no responde rápido pierdes clientesJesús Franco
 

Similar a Pensando en CPU, Memoria y Red para la Optimización de Aplicaciones Móviles (20)

Thinking of CPU and Memory (2.0)
Thinking of CPU and Memory (2.0)Thinking of CPU and Memory (2.0)
Thinking of CPU and Memory (2.0)
 
Web Performance Optimization
Web Performance OptimizationWeb Performance Optimization
Web Performance Optimization
 
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
Cómo volarle la peluca a tus usuarios con la velocidad de tu sitio?
 
Softonic Labs - Web Escalable
Softonic Labs - Web EscalableSoftonic Labs - Web Escalable
Softonic Labs - Web Escalable
 
Dev tool to measure website performance
Dev tool to measure website performanceDev tool to measure website performance
Dev tool to measure website performance
 
Cloud para tu juego en una tarde
Cloud para tu juego en una tardeCloud para tu juego en una tarde
Cloud para tu juego en una tarde
 
Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020Hacking Web Performance en Español - JSConf México 2020
Hacking Web Performance en Español - JSConf México 2020
 
202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy202204-Modernizando aplicaciones legacy
202204-Modernizando aplicaciones legacy
 
Insti fer
Insti ferInsti fer
Insti fer
 
Presentacion cw2012
Presentacion cw2012Presentacion cw2012
Presentacion cw2012
 
Destripando y protegiendo aplicaciones android
Destripando y protegiendo aplicaciones androidDestripando y protegiendo aplicaciones android
Destripando y protegiendo aplicaciones android
 
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
Jesús Olmos - ChromeHack, a html5/chrome webhack tool [Rooted CON 2013]
 
¿Cómo iniciarse en programación Android?
¿Cómo iniciarse en programación Android?¿Cómo iniciarse en programación Android?
¿Cómo iniciarse en programación Android?
 
Trabajo práctico diagnostico
Trabajo práctico diagnosticoTrabajo práctico diagnostico
Trabajo práctico diagnostico
 
Desarrollo de apps móviles desde cero
Desarrollo de apps móviles desde ceroDesarrollo de apps móviles desde cero
Desarrollo de apps móviles desde cero
 
La plataforma educativa libre OpenSWAD.org
La plataforma educativa libre OpenSWAD.orgLa plataforma educativa libre OpenSWAD.org
La plataforma educativa libre OpenSWAD.org
 
Memorias ram
Memorias ramMemorias ram
Memorias ram
 
Drupal Sitebuilding 101
Drupal Sitebuilding 101Drupal Sitebuilding 101
Drupal Sitebuilding 101
 
NTICs Consulta Historia del Internet, Navegadores Web y Motores de Busqueda.
NTICs Consulta Historia del Internet, Navegadores Web y Motores de Busqueda.NTICs Consulta Historia del Internet, Navegadores Web y Motores de Busqueda.
NTICs Consulta Historia del Internet, Navegadores Web y Motores de Busqueda.
 
Si tu aplicación no responde rápido pierdes clientes
Si tu aplicación no responde rápido pierdes clientesSi tu aplicación no responde rápido pierdes clientes
Si tu aplicación no responde rápido pierdes clientes
 

Pensando en CPU, Memoria y Red para la Optimización de Aplicaciones Móviles