Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Performance Matters! Fast Andreas
Slide 2
Slide 2 text
Típico día de trabajo Tareas Implementación Tests Revisión de Código Deploy Feedback Pocas veces pensamos en la performance!
Slide 3
Slide 3 text
Las aplicaciones son para los usuarios. Por qué importa?
Slide 4
Slide 4 text
UX Según Nielsen Norman Group 0 - 100ms ~> instantánea
Slide 5
Slide 5 text
100ms - 1s ~> fluida
Slide 6
Slide 6 text
1 - 10s ~> mantiene la atención
Slide 7
Slide 7 text
> 10s ~> se distrae y abandona el sitio
Slide 8
Slide 8 text
En 2011 el tiempo de carga promedio de las páginas web era de 4.9s! Loading...
Slide 9
Slide 9 text
Un estudio realizado por Fiona Fui-Hoon Nah en la Universidad de Nebraska, arrojó que los tiempos de espera tolerables se han reducido a...
Slide 10
Slide 10 text
Afecta nuestro negocio Google Search 2006 ~> 500ms más lento, 20% menos tráfico 2011 ~> 400ms más lento, 44% menos tráfico
Slide 11
Slide 11 text
Amazon 2006 - 100ms más lento, 1% baja en ventas ~ $107 millones
Slide 12
Slide 12 text
¿Cómo mejorar la performance? medir optimizar testear TIPS!
Slide 13
Slide 13 text
Es fundamental para determinar el efecto de un cambio. Medir
Slide 14
Slide 14 text
Tener claro el objetivo y utilizar las herramientas adecuadas. Datos y volúmenes reales
Slide 15
Slide 15 text
3 formas de obtener métricas
Slide 16
Slide 16 text
Test de concurrencia Cantidad de usuarios concurrentes
Slide 17
Slide 17 text
● Tiempo de procesador ● Cantidad de memoria utilizada ● Cantidad de objetos ● Información del GC Test de benchmarking
Slide 18
Slide 18 text
010101111011101010101011111111010101 010010111110111101010101011111111010 010101111011101010101011111111010101 010010111110111101010101011111111010 010101111011101010101011111111010101 010010111110111101010101011111111010 010101111011101010101011111111010101 010010111110111101010101011111111010 010101111011101010101011111111010101 010010111110111101010101011111111010 010101111011101010101011111111010101 010010111110111101010101011111111010 Test de profiling Análisis en profundidad de métodos invocados
Slide 19
Slide 19 text
Tips!
Slide 20
Slide 20 text
Base de Datos
Slide 21
Slide 21 text
No content
Slide 22
Slide 22 text
Queries lentas e índices
Slide 23
Slide 23 text
Uso inadecuado de la DB Ej: cola de mensajes
Slide 24
Slide 24 text
Herramientas Percona toolkit Analizar slow query log - pt-query-digest Query Reviewer - MySQL
Slide 25
Slide 25 text
Query Reviewer
Slide 26
Slide 26 text
Framework
Slide 27
Slide 27 text
1.9.3 + Rápido que 1.9.2 2.0 tiene optimizaciones En algunos casos jRuby es más rápido Versión de Ruby
Slide 28
Slide 28 text
Quitar gemas que no se usen
Slide 29
Slide 29 text
Conocer el framework Asset pipeline Turbolinks Mailer
Slide 30
Slide 30 text
Herramientas Rails Footnotes New Relic
Slide 31
Slide 31 text
Rails Footnotes
Slide 32
Slide 32 text
Código
Slide 33
Slide 33 text
Si el resultado no cambia Cachealo! Cachealo!
Slide 34
Slide 34 text
Evitar consultas innecesarias a la DB
Slide 35
Slide 35 text
Diseño general de la solución
Slide 36
Slide 36 text
Perftools.rb
Slide 37
Slide 37 text
Tests
Slide 38
Slide 38 text
Test Validar el cambio Tests más rápidos
Slide 39
Slide 39 text
Ben Orenstein - http://goo.gl/FCeIg - @r00k ● Evitar salvar objetos a la base de datos ● Reducir el startup de rails (gc patch, gems) ● Usar Stubs
Slide 40
Slide 40 text
Performance Matters La experiencia de usuario importa Los usuarios prefieren una experiencia fluida a una glamorosa Todos se benefician!
Slide 41
Slide 41 text
Performance Matters! @ahfast