40

Performance mobile: eleições 2014

Embed Size (px)

Citation preview

Page 1: Performance mobile: eleições 2014
Page 2: Performance mobile: eleições 2014

■ Programador PHP há mais de 10 anos

■ Trabalhou em grandes projetos nacionais para o governo e telecomunicações

■ Interesse em P&D/Performance

Palestrante

Page 3: Performance mobile: eleições 2014

■ Web APP desenvolvido em HTML5 e PHP

■ Problemas de performance

✗ Lentidão na abertura inicial✗ Travamentos

Projeto Web APP Mobile

Page 4: Performance mobile: eleições 2014

Arquitetura decomunicação mobile

■ Maior latência (Round-trip delay time)

✓ 3G: 100ms ✓ EDGE: 300ms✓ Wifi: 2ms

300ms 30ms

Page 5: Performance mobile: eleições 2014

■ Utilizar como base 300ms RTT (EDGE)■ EDGE: 250Kbps = 31,25KBps■ Google Devtools

Meta (6 hits/requisição)

1 Hit Dinâmico > 300ms RTT + até 150ms5 Hits Estáticos > 1500ms RTT + 5x10ms

Total: ~2 segundos

Page 6: Performance mobile: eleições 2014

Por que isso éum malabarismo?

Recursos estáticose sua influência

Page 7: Performance mobile: eleições 2014

PercepçãoA forma como se otimiza pode ser ruim para o usuário

Page 8: Performance mobile: eleições 2014

■ Priorize conteúdo

Ordem correta de otimização

✓ Agrupe o restante do JS

✓ Atrase o carregamento do JS✓ Coloque inline o CSS do carregamento inicial✓ Adicione um fallback para biblioteca JS

Page 9: Performance mobile: eleições 2014

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?

✓ Agrupe o CSS✓ Minifier✓ GZIP✓ Não use QueryString

Page 10: Performance mobile: eleições 2014

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

WebAPP, WebView e HTML5

Page 11: Performance mobile: eleições 2014

Chrome for Android 39 WebView e Chrome 11

polymer-project.orgAndroid 4.3

Page 12: Performance mobile: eleições 2014

Android WebKit Browser Ops...

Android 4.4polymer-project.org

Page 14: Performance mobile: eleições 2014

Por que eu preciso saber isso!?

HTML5, JS, CSS, Imagens, Fontes... Apenas XHTML, CSS e imagens

Page 15: Performance mobile: eleições 2014

9 Hits - 13KB - 0,7 Segundos

Page 16: Performance mobile: eleições 2014

29 Hits - 398KB - 13 Segundos

Page 17: Performance mobile: eleições 2014

35 Hits - 306KB - 4 Segundos

Page 18: Performance mobile: eleições 2014

211 Hits - 1.8MB - 8 Segundos

Page 19: Performance mobile: eleições 2014

143 Hits - 3.6MB - 27 Segundos

Page 20: Performance mobile: eleições 2014

Folha 9 Hits 13KB 0,75 Segundos

Estadão 29 Hits 398KB 13 Segundos

Mobile Básico

Folha 35 Hits 306KB 4 Segundos

Globo 211 Hits 1.8MB 8 Segundos

New York Times 143 Hits 3.6MB 27 Segundos

Mobile Avançado

Page 21: Performance mobile: eleições 2014

■ Coloque o máximo de dados comuns ■ Faça invalidação na gravação■ Não é necessário excluir um item

Melhor Aplicabilidade de Memcache

ITENS NO CACHE

Tempo

Qtd

Page 22: Performance mobile: eleições 2014

Hits Sessão por hit Memória Servidor

10 1MB 10MB

100 1MB 100MB

100 10MB 1GB

1000 1MB 1GB

Sessão + Memcache

■ O Memcache permite que a sessão fique descentralizada

Page 23: Performance mobile: eleições 2014

■ 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

Page 24: Performance mobile: eleições 2014

Memcache e acesso compartilhado

Page 25: Performance mobile: eleições 2014

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

■ 10MB comum + 1MB específico

Page 26: Performance mobile: eleições 2014

Pool Memcache

■ Leitura mais rápida e escrita mais lenta■ Leitura é frequente, escrita não

1x 4GB 4x 1GB

Page 27: Performance mobile: eleições 2014

Cruzamento de dados relevantes■ Considere apenas hit dinâmico

Page 28: Performance mobile: eleições 2014
Page 29: Performance mobile: eleições 2014

Calculando...

■ PV/Requisição ~> Analytics

■ Hit/PV ~> DevTools

Page 30: Performance mobile: eleições 2014

Otimização

11 19 209 Antes

16 7 119 Depois

■ Redução na quantidade de hits dinâmicos

Page 31: Performance mobile: eleições 2014

■ Após melhorias o número de usuários cresceu...

Feedback

VisitantesVisitantes Únicos

Visualização de páginaAcessos

Page 32: Performance mobile: eleições 2014

■ ...e o servidor esfriou também

Mês

HITs

MEMCACHE

Page 33: Performance mobile: eleições 2014

Ações■ Garantir que será mantido durante

manutenção

✓ Uglify

✓ CSSmin

Desenvolvimento

Produção

Page 34: Performance mobile: eleições 2014

■ Lembra da pergunta? Aqui +90% é acesso sem cache algum!

■ Como dimensionar? Utilize os dados que você tem!

Page 35: Performance mobile: eleições 2014

201 milhões de habitantes

142 milhões de eleitores

107 milhões votaram

20 milhões para cada umdos 5 maiores veículos

Page 36: Performance mobile: eleições 2014

5500 visitantes simultâneos

275 (5%) vai para mobile

250 novos visitantes únicos

49750 Hits

Page 37: Performance mobile: eleições 2014

Eleições ‘14

Fluxo de acesso

Page 38: Performance mobile: eleições 2014

PROXY REVERSO

PHP

Tráfego

Mês

Mês

Tempo deprocessador

Page 39: Performance mobile: eleições 2014

BANCO DE DADOS

MEMCACHEHITs

Dias

Mês

Load

Page 40: Performance mobile: eleições 2014

Agradecimentos e contato

http://about.me/webystherGoogle It! Webysther

❖ Folha de S.Paulo❖ GitHub❖ Google