SlideShare uma empresa Scribd logo
Performance mobile: eleições 2014
Palestrante 
■ Programador PHP há mais de 10 anos 
■ Trabalhou em grandes projetos nacionais 
para o governo e telecomunicações 
■ Interesse em P&D/Performance
Projeto Web APP Mobile 
■ Web APP desenvolvido em HTML5 e PHP 
■ Problemas de performance 
✗ Lentidão na abertura inicial 
✗ Travamentos
Arquitetura de 
comunicação mobile 
■ Maior latência (Round-trip delay time) 
✓ Wifi: 2ms ✓ 3G: 100ms ✓ EDGE: 300ms 
300ms 30ms
■ Utilizar como base 300ms RTT (EDGE) 
■ EDGE: 250Kbps = 31,25KBps 
■ Google Devtools 
Meta (6 hits/requisição) 
1 Hit Dinâmico > 300ms RTT + até 150ms 
5 Hits Estáticos > 1500ms RTT + 5x10ms 
Total: ~2 segundos
Recursos estáticos 
e sua influência 
Por que isso é 
um malabarismo?
Percepção 
A forma como se otimiza pode ser ruim 
para o usuário
Ordem correta de otimização 
■ Priorize conteúdo 
✓ Atrase o carregamento do JS 
✓ Coloque inline o CSS do carregamento inicial 
✓ Adicione um fallback para biblioteca JS 
✓ Agrupe o restante do JS
✓ Agrupe o CSS 
✓ Minifier 
✓ GZIP 
✓ Não use QueryString 
Mas isso não é carregado apenas uma vez? 
Por que eu preciso me preocupar com isso? 
Essa palestra é de front-end? 
Onde é a saída?
WebAPP, WebView e HTML5 
O WebView e WebAPP desgastando DEV’s 
■ Android 4.3 < WebView é Chrome 11 (2010) 
■ Android 4.4 > WebView é Chrome 30 (2013) 
■ Versão atual do Chrome é 39 (2014) 
■ O iOS segue a mesma lógica
polymer-project.org 
Android 4.3 
Chrome for Android 39 WebView e Chrome 11
polymer-project.org 
Android 4.4 
Android WebKit Browser Ops...
Versões Android 
Versão Nome Distribuição 
2.2 Froyo 0.5% 
2.3.3 - 
Gingerbread 9.1% 
2.3.7 
4.0.3 - 
4.0.4 
Ice Cream 
Sandwich 
7.8% 
4.1.x Jelly Bean 21.3% 
4.2.x 20.4% 
4.3 7.0% 
4.4 KitKat 33.9% 
Fonte: Dashboards | Android Developers
Por que eu preciso saber isso!? 
HTML5, JS, CSS, Imagens, Fontes... Apenas XHTML, CSS e imagens
9 Hits - 13KB - 0,7 Segundos
29 Hits - 398KB - 13 Segundos
35 Hits - 306KB - 4 Segundos
211 Hits - 1.8MB - 8 Segundos
143 Hits - 3.6MB - 27 Segundos
Mobile Básico 
Folha 9 Hits 13KB 0,75 Segundos 
Estadão 29 Hits 398KB 13 Segundos 
Mobile Avançado 
Folha 35 Hits 306KB 4 Segundos 
Globo 211 Hits 1.8MB 8 Segundos 
New York Times 143 Hits 3.6MB 27 Segundos
Melhor Aplicabilidade de 
Memcache 
■ Coloque o máximo de dados comuns 
■ Faça invalidação na gravação 
■ Não é necessário excluir um item 
ITENS NO CACHE 
Tempo 
Qtd
Sessão + Memcache 
Hits Sessão por hit Memória Servidor 
10 1MB 10MB 
100 1MB 100MB 
100 10MB 1GB 
1000 1MB 1GB 
■ O Memcache permite que a sessão fique 
descentralizada
■ Retira o acesso ao disco e melhora 
a leitura 
■ O que não resolve 
✗ Todo session_start() adiciona o dado na 
memória do servidor 
■ Adicione apenas dados básicos
Memcache e acesso 
compartilhado
■ 10MB comum + 1MB específico 
Hits Memcache Servidor Total Sem Memcache 
10 10MB + 10MB 60MB 80MB 170MB 
100 10MB + 100MB 600MB 710MB 1.7GB 
300 10MB + 300MB 1.8GB 2.1GB 5.1GB
Pool Memcache 
■ Leitura mais rápida e escrita mais lenta 
■ Leitura é frequente, escrita não 
1x 4GB 4x 1GB
Cruzamento de dados relevantes 
■ Considere apenas hit dinâmico
Performance mobile: eleições 2014
Calculando... 
■ PV/Requisição ~> Analytics 
■ Hit/PV ~> DevTools
Otimização 
■ Redução na quantidade de hits dinâmicos 
11 19 209 Antes 
16 7 119 Depois
Feedback 
■ Após melhorias o número de usuários 
cresceu... 
Visualização de página 
Visitantes 
Visitantes Únicos 
Acessos
■ ...e o servidor esfriou também 
Mês 
HITs 
MEMCACHE
Ações 
■ Garantir que será mantido durante 
manutenção 
✓ Uglify 
✓ CSSmin 
Desenvolvimento 
Produção
■ Lembra da pergunta? Aqui +90% é acesso 
sem cache algum! 
■ Como dimensionar? Utilize os dados que 
você tem!
201 milhões de habitantes 
142 milhões de eleitores 
107 milhões votaram 
20 milhões para cada um 
dos 5 maiores veículos
5500 visitantes simultâneos 
275 (5%) vai para mobile 
250 novos 
visitantes únicos 
49750 Hits
Eleições ‘14 
Fluxo de acesso
PROXY REVERSO 
PHP 
Tráfego 
Mês 
Mês 
Tempo de 
processador
MEMCACHE 
BANCO DE DADOS 
HITs 
Dias 
Mês 
Load
Agradecimentos e contato 
❖ Folha de S.Paulo 
http://about.me/webysther 
Google It! Webysther 
❖ GitHub 
❖ Google

Mais conteúdo relacionado

PDF
Como se tornar um viciado em performance em 5 passos
PDF
Alta Performance em Aplicações Web
PPTX
Browsers como vivem o que fazem
PPT
SASS + COMPASS - Alta Produtividade no Front-end
PPT
XPT Framework
PDF
Rails nas Nuvens
KEY
Frontend (RailsMG)
PPTX
MVP Week 2020 - Aplicações Modernas com Blazor WASM
Como se tornar um viciado em performance em 5 passos
Alta Performance em Aplicações Web
Browsers como vivem o que fazem
SASS + COMPASS - Alta Produtividade no Front-end
XPT Framework
Rails nas Nuvens
Frontend (RailsMG)
MVP Week 2020 - Aplicações Modernas com Blazor WASM

Mais procurados (12)

PPTX
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
PPT
Redacao Digital C Se
PDF
Drupal Performance
PPTX
Palestra: Otimização de websites
PPTX
Performance Web com ASP.NET MVC
PPTX
Devcommerce Manifesto Reativo
PDF
Instalando e configurando o WordPress local
PDF
Migre seu banco de dados para a nuvem. Pergunte-me como!
PPTX
[JS EXPERIENCE 2018] Gerenciando o fluxo assincrono de operações Javascript -...
PPT
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
PPTX
Utilizando RabbitMQ com .NET Core e EasyNetQ
PPTX
ASP.NET Core APIs: Performance Tips
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
Redacao Digital C Se
Drupal Performance
Palestra: Otimização de websites
Performance Web com ASP.NET MVC
Devcommerce Manifesto Reativo
Instalando e configurando o WordPress local
Migre seu banco de dados para a nuvem. Pergunte-me como!
[JS EXPERIENCE 2018] Gerenciando o fluxo assincrono de operações Javascript -...
TDC 2013 SP | Arquitetura Java: Preciso de um Framework, mas qual usar?
Utilizando RabbitMQ com .NET Core e EasyNetQ
ASP.NET Core APIs: Performance Tips
Anúncio

Destaque (20)

PPTX
Google chrome
PPTX
Google Chrome OS
PPTX
Google chrome
 
PDF
Best Practices für TDD in JavaScript
PPTX
Chrome OS
DOCX
Chrome os trabalho
PPTX
Chromecast
PPTX
Chrome Os Pequeño analisis Dm.
PPTX
MIRIADA. Modulo I: BÚSQUEDA DE INFORMACIÓN CON GOOGLE.
PDF
La réaction des consommateurs face à la récession
PDF
Verspiegelung mit Chromspray System
PPSX
Informática para Internet - Aula 04
PPT
Chrome os
PDF
Chome os
PDF
07 08 - A historia da Internet
PPTX
Sistemas operativos google chrome os
PPT
Google chrome
PDF
PR-Budgets 2012
PPT
Google chrome os
PPTX
Google chrome os
Google chrome
Google Chrome OS
Google chrome
 
Best Practices für TDD in JavaScript
Chrome OS
Chrome os trabalho
Chromecast
Chrome Os Pequeño analisis Dm.
MIRIADA. Modulo I: BÚSQUEDA DE INFORMACIÓN CON GOOGLE.
La réaction des consommateurs face à la récession
Verspiegelung mit Chromspray System
Informática para Internet - Aula 04
Chrome os
Chome os
07 08 - A historia da Internet
Sistemas operativos google chrome os
Google chrome
PR-Budgets 2012
Google chrome os
Google chrome os
Anúncio

Semelhante a Performance mobile: eleições 2014 (20)

PDF
Um milhao de usuários simultâneos
PDF
Melhorando a performance de aplicações com o uso do MemCache
ODP
Darkmira - Performance em aplicações PHP
PDF
Um milhao tdc2014sp Apresentação por Fernando Ike
PDF
Vamos conversar sobre cache
PPTX
Guia de Otimização de Performance de Sites (Page Speed)
PDF
Otimizacao de websites em PHP
ODP
Escalabilidade em Aplicações - Fisl13
PDF
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
PDF
BKRender: mobile made easy
PDF
Performance web - Como deixar a sua aplicação rápida, fazendo seus usuári...
PDF
Cache e Performance (in portuguese)
PDF
Meu Plone Site está lento. O que fazer???
PDF
Web Performance Client Side
PDF
App Web Escalaveis Fisl
PDF
Para ontem: carregando sites mais rapidamente
PPTX
Mobile: o que já está acontecendo e o que é futuro?
PPTX
Mobile Web: Aqui e Agora
PPT
Talk at QConSP
PDF
Desenvolvendo aplicativos web escaláveis
Um milhao de usuários simultâneos
Melhorando a performance de aplicações com o uso do MemCache
Darkmira - Performance em aplicações PHP
Um milhao tdc2014sp Apresentação por Fernando Ike
Vamos conversar sobre cache
Guia de Otimização de Performance de Sites (Page Speed)
Otimizacao de websites em PHP
Escalabilidade em Aplicações - Fisl13
Melhorando o desempenho do seu WordPress [WordCamp Porto Alegre 2015]
BKRender: mobile made easy
Performance web - Como deixar a sua aplicação rápida, fazendo seus usuári...
Cache e Performance (in portuguese)
Meu Plone Site está lento. O que fazer???
Web Performance Client Side
App Web Escalaveis Fisl
Para ontem: carregando sites mais rapidamente
Mobile: o que já está acontecendo e o que é futuro?
Mobile Web: Aqui e Agora
Talk at QConSP
Desenvolvendo aplicativos web escaláveis

Último (11)

PDF
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
PPTX
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
PPTX
Viasol Energia Solar -Soluções para geração e economia de energia
PDF
Manejo integrado de pragas na cultura do algodão
PPTX
Arquitetura de computadores - Memórias Secundárias
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PPTX
Utilizando code blockes por andre backes
PPTX
Eng. Software - pontos essenciais para o início
PPTX
Tipos de servidor em redes de computador.pptx
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
Design - Introdução a Gestalt e teoria das formas
Termos utilizados na designação de relação entre pessoa e uma obra.pdf
Informática Aplicada Informática Aplicada Plano de Ensino - estudo de caso NR...
Viasol Energia Solar -Soluções para geração e economia de energia
Manejo integrado de pragas na cultura do algodão
Arquitetura de computadores - Memórias Secundárias
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Utilizando code blockes por andre backes
Eng. Software - pontos essenciais para o início
Tipos de servidor em redes de computador.pptx
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
Design - Introdução a Gestalt e teoria das formas

Performance mobile: eleições 2014

  • 2. Palestrante ■ Programador PHP há mais de 10 anos ■ Trabalhou em grandes projetos nacionais para o governo e telecomunicações ■ Interesse em P&D/Performance
  • 3. Projeto Web APP Mobile ■ Web APP desenvolvido em HTML5 e PHP ■ Problemas de performance ✗ Lentidão na abertura inicial ✗ Travamentos
  • 4. Arquitetura de comunicação mobile ■ Maior latência (Round-trip delay time) ✓ Wifi: 2ms ✓ 3G: 100ms ✓ EDGE: 300ms 300ms 30ms
  • 5. ■ Utilizar como base 300ms RTT (EDGE) ■ EDGE: 250Kbps = 31,25KBps ■ Google Devtools Meta (6 hits/requisição) 1 Hit Dinâmico > 300ms RTT + até 150ms 5 Hits Estáticos > 1500ms RTT + 5x10ms Total: ~2 segundos
  • 6. Recursos estáticos e sua influência Por que isso é um malabarismo?
  • 7. Percepção A forma como se otimiza pode ser ruim para o usuário
  • 8. Ordem correta de otimização ■ Priorize conteúdo ✓ Atrase o carregamento do JS ✓ Coloque inline o CSS do carregamento inicial ✓ Adicione um fallback para biblioteca JS ✓ Agrupe o restante do JS
  • 9. ✓ Agrupe o CSS ✓ Minifier ✓ GZIP ✓ Não use QueryString Mas isso não é carregado apenas uma vez? Por que eu preciso me preocupar com isso? Essa palestra é de front-end? Onde é a saída?
  • 10. WebAPP, WebView e HTML5 O WebView e WebAPP desgastando DEV’s ■ Android 4.3 < WebView é Chrome 11 (2010) ■ Android 4.4 > WebView é Chrome 30 (2013) ■ Versão atual do Chrome é 39 (2014) ■ O iOS segue a mesma lógica
  • 11. polymer-project.org Android 4.3 Chrome for Android 39 WebView e Chrome 11
  • 12. polymer-project.org Android 4.4 Android WebKit Browser Ops...
  • 13. Versões Android Versão Nome Distribuição 2.2 Froyo 0.5% 2.3.3 - Gingerbread 9.1% 2.3.7 4.0.3 - 4.0.4 Ice Cream Sandwich 7.8% 4.1.x Jelly Bean 21.3% 4.2.x 20.4% 4.3 7.0% 4.4 KitKat 33.9% Fonte: Dashboards | Android Developers
  • 14. Por que eu preciso saber isso!? HTML5, JS, CSS, Imagens, Fontes... Apenas XHTML, CSS e imagens
  • 15. 9 Hits - 13KB - 0,7 Segundos
  • 16. 29 Hits - 398KB - 13 Segundos
  • 17. 35 Hits - 306KB - 4 Segundos
  • 18. 211 Hits - 1.8MB - 8 Segundos
  • 19. 143 Hits - 3.6MB - 27 Segundos
  • 20. Mobile Básico Folha 9 Hits 13KB 0,75 Segundos Estadão 29 Hits 398KB 13 Segundos Mobile Avançado Folha 35 Hits 306KB 4 Segundos Globo 211 Hits 1.8MB 8 Segundos New York Times 143 Hits 3.6MB 27 Segundos
  • 21. Melhor Aplicabilidade de Memcache ■ Coloque o máximo de dados comuns ■ Faça invalidação na gravação ■ Não é necessário excluir um item ITENS NO CACHE Tempo Qtd
  • 22. Sessão + Memcache Hits Sessão por hit Memória Servidor 10 1MB 10MB 100 1MB 100MB 100 10MB 1GB 1000 1MB 1GB ■ O Memcache permite que a sessão fique descentralizada
  • 23. ■ Retira o acesso ao disco e melhora a leitura ■ O que não resolve ✗ Todo session_start() adiciona o dado na memória do servidor ■ Adicione apenas dados básicos
  • 24. Memcache e acesso compartilhado
  • 25. ■ 10MB comum + 1MB específico Hits Memcache Servidor Total Sem Memcache 10 10MB + 10MB 60MB 80MB 170MB 100 10MB + 100MB 600MB 710MB 1.7GB 300 10MB + 300MB 1.8GB 2.1GB 5.1GB
  • 26. Pool Memcache ■ Leitura mais rápida e escrita mais lenta ■ Leitura é frequente, escrita não 1x 4GB 4x 1GB
  • 27. Cruzamento de dados relevantes ■ Considere apenas hit dinâmico
  • 29. Calculando... ■ PV/Requisição ~> Analytics ■ Hit/PV ~> DevTools
  • 30. Otimização ■ Redução na quantidade de hits dinâmicos 11 19 209 Antes 16 7 119 Depois
  • 31. Feedback ■ Após melhorias o número de usuários cresceu... Visualização de página Visitantes Visitantes Únicos Acessos
  • 32. ■ ...e o servidor esfriou também Mês HITs MEMCACHE
  • 33. Ações ■ Garantir que será mantido durante manutenção ✓ Uglify ✓ CSSmin Desenvolvimento Produção
  • 34. ■ Lembra da pergunta? Aqui +90% é acesso sem cache algum! ■ Como dimensionar? Utilize os dados que você tem!
  • 35. 201 milhões de habitantes 142 milhões de eleitores 107 milhões votaram 20 milhões para cada um dos 5 maiores veículos
  • 36. 5500 visitantes simultâneos 275 (5%) vai para mobile 250 novos visitantes únicos 49750 Hits
  • 38. PROXY REVERSO PHP Tráfego Mês Mês Tempo de processador
  • 39. MEMCACHE BANCO DE DADOS HITs Dias Mês Load
  • 40. Agradecimentos e contato ❖ Folha de S.Paulo http://about.me/webysther Google It! Webysther ❖ GitHub ❖ Google