SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
Extreme Web
Performance
    Leo Balter
  WPMeetupRJ 2012
https://reps.mozilla.org/u/leobalter/
Jaydson.org




 http://goo.gl/IDefJ
Steve Souders
                 High Performance Web Sites




    "Performance golden rule: Optimize front-end
performance first, that's where 80/90% of the end-user
               response time is spent."
80 a 90% do tempo de resposta
 ao usuário está no frontend!
Por que?
Google

• Velocidade do site afeta o seu ranking nas
  buscas (Webmaster Central Blog)

             http://goo.gl/h3FX3
Amazon

• +100ms = -1% de vendas
• ~ $67 milhões/dia
• 1seg = - $2.4 bilhões por ano!

             http://goo.gl/zSd8q
Shopzilla.com

• -5 segunos = + conversão (7 a 12%)
• 2x referências em sites de busca
• 50% servidores necessários
           http://goo.gl/AMCx2
Tamanho também é
   velocidade
Terra
Psicologia da Performance
               http://goo.gl/mecWn
           Parece mais lento quando:
•   desagradável
•   desconhecido
•   chato
•   muita coisa pra acompanhar

•   nunca coloque muitos
•   marcadores
•   em um slide
•   nunca
•   é difícil de analisar
Psicologia da Performance
                http://goo.gl/mecWn
                 Efeitos da espera



•   Irritação
•   Estresse
•   Colesterol alto
•   Morte!
1 segundo

• 11% de page views
• 7% de conversão
• 16% Satisfação do consumidor
http://goo.gl/YHygR
Comportamento         Não otimizado       Otimizado

 Bounce Rate              14,35%           13,38%

 Páginas / Visita         11,04             15,64

Tempo médio no
                          0:23:50          0:30:10
     site


                    http://goo.gl/iz5qc
Ferramentas

• Yahoo YSlow
• Google PageSpeed
• Abas de “Rede” nos DevTools (Firefox,
  Chrome e Opera)
• WebPageTest
LazyLoad


• <script async src=”file.js”></script>
• YepNope.js
Unificar e Minimizar

• JavaScript
• CSS
• Imagens (Background Sprites)
Javascript

• UglifyJS
• PimpMyJs.com
• Google Closure Compiler
CSS


• Sqwish - https://github.com/ded/sqwish
• YUI CSS Compressor
Imagens


• YSlow Smush.it http://goo.gl/gk1XQ
• Photoshop / GIMP
CDN


• Pense nos cookies!
Código ruim afeta
     performance!

• HTML, CSS e Javascript
• Validação W3C, CSSLint e JSHint!
Wordpress

• W3 Total Cache:
 • Closure Compiler (JS)
 • YUI Compressor (CSS)
 • HTML Tidy
Wordpress

• W3 Total Cache:
 • Unifica e Minimiza tudo!
 • mas...
Grunt!


• via node.js
• https://github.com/cowboy/grunt/
jQuery


• + recente = + performance
• fuja de anti padrões
Seletores jQuery
    $(‘#minha_id’)
+
    $(‘div’)

    $(‘div.classes’)

    $(‘.classes’)
-   $(‘[atributo]’)
$(‘div.classes’).show();
$(‘div.classes’).css(‘color’, ‘red’);
$(‘div.classes’).click();




var elems = $(‘div.classes’);

elems.show();
elems.css(‘color’, ‘red’);
elems.click();
Tempo no console

console.time(‘minha tarefa’);

$(‘div.classes’).show();
$(‘div.classes’).css(‘color’, ‘red’);
$(‘div.classes’).click();

console.timeEnd(‘minha tarefa’);
JS: esquerda pra direita


      $(‘#menu li a’)
CSS: direita pra esquerda

   #menu li a {
       text-decoration: none;
   }


             WTF!
CSS: direita pra esquerda

   .menuLink {
       text-decoration: none;
   }


Mais rápido! (no CSS)
CSS Faz diferença!
Viagem no tempo
1   var a = Date.now(),
 2     b,
 3     i = 0;
 4
 5   while (i < 1000) {
 6     ++i;
 7     if (i % 100 === 0) {
 8       console.log(i);
 9     }
10   }
11
12   b = Date.now();
13
14   console.log('valor de i: ' + i);
15   console.log('tempo em ms: ' + (b - a));
100
200
300
400
500
600
700
800
900
1000
valor de i: 1000
tempo em ms: 8

user!0m0.048s
Percepções

• Toque
• Visão
• Resposta do Console
Extreme Web Performance

Mais conteúdo relacionado

Semelhante a Extreme Web Performance

Práticas para um Site Otimizado - CaelumDay in Rio 2011
Práticas para um Site Otimizado - CaelumDay in Rio 2011Práticas para um Site Otimizado - CaelumDay in Rio 2011
Práticas para um Site Otimizado - CaelumDay in Rio 2011Caelum
 
Alta Performance em Aplicações Web
Alta Performance em Aplicações WebAlta Performance em Aplicações Web
Alta Performance em Aplicações WebAnderson Aguiar
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seointrofini
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensPaulino Michelazzo
 
Lightning Talk: Webdev who?
Lightning Talk: Webdev who?Lightning Talk: Webdev who?
Lightning Talk: Webdev who?Leandro Nunes
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScriptCarlos Eduardo Kadu
 
SEO para E-Commerce: lojas online com sucesso!
SEO para E-Commerce: lojas online com sucesso!SEO para E-Commerce: lojas online com sucesso!
SEO para E-Commerce: lojas online com sucesso!introfini
 
SEO – A PEÇA CHAVE DO QUEBRA-CABEÇA
SEO –  A PEÇA CHAVE DO QUEBRA-CABEÇASEO –  A PEÇA CHAVE DO QUEBRA-CABEÇA
SEO – A PEÇA CHAVE DO QUEBRA-CABEÇALeonardo Ferreira
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013javamanrj
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Rodolfo Fadino Junior
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Mozart Diniz
 
Dicas para otimizar o WordPress por Felipe Figueiredo
Dicas para otimizar o WordPress por Felipe FigueiredoDicas para otimizar o WordPress por Felipe Figueiredo
Dicas para otimizar o WordPress por Felipe FigueiredoWordCamp Floripa
 
Tudo que Você Precisa Saber para Hackear o Google
Tudo que Você Precisa Saber para Hackear o GoogleTudo que Você Precisa Saber para Hackear o Google
Tudo que Você Precisa Saber para Hackear o GoogleFelipe Bazon
 

Semelhante a Extreme Web Performance (20)

Práticas para um Site Otimizado - CaelumDay in Rio 2011
Práticas para um Site Otimizado - CaelumDay in Rio 2011Práticas para um Site Otimizado - CaelumDay in Rio 2011
Práticas para um Site Otimizado - CaelumDay in Rio 2011
 
Alta Performance em Aplicações Web
Alta Performance em Aplicações WebAlta Performance em Aplicações Web
Alta Performance em Aplicações Web
 
O que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seoO que todos os developers devem saber sobre seo
O que todos os developers devem saber sobre seo
 
Javascript Cross-browser
Javascript Cross-browserJavascript Cross-browser
Javascript Cross-browser
 
HTML 5
HTML 5HTML 5
HTML 5
 
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvensDrupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens
 
Lightning Talk: Webdev who?
Lightning Talk: Webdev who?Lightning Talk: Webdev who?
Lightning Talk: Webdev who?
 
Introdução básica ao JavaScript
Introdução básica ao JavaScriptIntrodução básica ao JavaScript
Introdução básica ao JavaScript
 
SEO para E-Commerce: lojas online com sucesso!
SEO para E-Commerce: lojas online com sucesso!SEO para E-Commerce: lojas online com sucesso!
SEO para E-Commerce: lojas online com sucesso!
 
Browsers como vivem o que fazem
Browsers como vivem o que fazemBrowsers como vivem o que fazem
Browsers como vivem o que fazem
 
Drupal Performance
Drupal PerformanceDrupal Performance
Drupal Performance
 
SEO – A PEÇA CHAVE DO QUEBRA-CABEÇA
SEO –  A PEÇA CHAVE DO QUEBRA-CABEÇASEO –  A PEÇA CHAVE DO QUEBRA-CABEÇA
SEO – A PEÇA CHAVE DO QUEBRA-CABEÇA
 
jQuery
jQueryjQuery
jQuery
 
jQuery
jQueryjQuery
jQuery
 
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
Construindo aplicações Desktop com HTML, CSS e JS - Rio.JS Conference 2013
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016
 
Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?Como desenvolver com um sistema com um front-end colossal?
Como desenvolver com um sistema com um front-end colossal?
 
Web 3.0
Web 3.0Web 3.0
Web 3.0
 
Dicas para otimizar o WordPress por Felipe Figueiredo
Dicas para otimizar o WordPress por Felipe FigueiredoDicas para otimizar o WordPress por Felipe Figueiredo
Dicas para otimizar o WordPress por Felipe Figueiredo
 
Tudo que Você Precisa Saber para Hackear o Google
Tudo que Você Precisa Saber para Hackear o GoogleTudo que Você Precisa Saber para Hackear o Google
Tudo que Você Precisa Saber para Hackear o Google
 

Mais de Leonardo Balter

Guia de Sobrevivência JS no mundo Open Source
Guia de Sobrevivência JS no mundo Open SourceGuia de Sobrevivência JS no mundo Open Source
Guia de Sobrevivência JS no mundo Open SourceLeonardo Balter
 
Potencial de Vendas do e-Commerce no Frontend - WOB2012
Potencial de Vendas do e-Commerce no Frontend - WOB2012Potencial de Vendas do e-Commerce no Frontend - WOB2012
Potencial de Vendas do e-Commerce no Frontend - WOB2012Leonardo Balter
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebLeonardo Balter
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndLeonardo Balter
 
Realize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RSRealize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RSLeonardo Balter
 
EDTED BH - HTML 5 e CSS 3 - Julho de 2011
EDTED BH - HTML 5 e CSS 3 - Julho de 2011EDTED BH - HTML 5 e CSS 3 - Julho de 2011
EDTED BH - HTML 5 e CSS 3 - Julho de 2011Leonardo Balter
 
WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011Leonardo Balter
 
EDTED SP - HTML 5 e CSS 3 - Junho de 2011
EDTED SP - HTML 5 e CSS 3 - Junho de 2011EDTED SP - HTML 5 e CSS 3 - Junho de 2011
EDTED SP - HTML 5 e CSS 3 - Junho de 2011Leonardo Balter
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJLeonardo Balter
 
HTML 5 - Semana da Computação - UFF
HTML 5 - Semana da Computação - UFFHTML 5 - Semana da Computação - UFF
HTML 5 - Semana da Computação - UFFLeonardo Balter
 

Mais de Leonardo Balter (13)

Unit testing
Unit testingUnit testing
Unit testing
 
Insustentavel js
Insustentavel jsInsustentavel js
Insustentavel js
 
GruntJS + Wordpress
GruntJS + WordpressGruntJS + Wordpress
GruntJS + Wordpress
 
Guia de Sobrevivência JS no mundo Open Source
Guia de Sobrevivência JS no mundo Open SourceGuia de Sobrevivência JS no mundo Open Source
Guia de Sobrevivência JS no mundo Open Source
 
Potencial de Vendas do e-Commerce no Frontend - WOB2012
Potencial de Vendas do e-Commerce no Frontend - WOB2012Potencial de Vendas do e-Commerce no Frontend - WOB2012
Potencial de Vendas do e-Commerce no Frontend - WOB2012
 
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open WebNovo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
Novo Cinto de Utilidades do Desenvolvedor JavaScript, WebAPIs e Open Web
 
Receita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front EndReceita do Sucesso no Mercado Front End
Receita do Sucesso no Mercado Front End
 
Realize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RSRealize mais com HTML 5 e CSS 3 - EDTED / RS
Realize mais com HTML 5 e CSS 3 - EDTED / RS
 
EDTED BH - HTML 5 e CSS 3 - Julho de 2011
EDTED BH - HTML 5 e CSS 3 - Julho de 2011EDTED BH - HTML 5 e CSS 3 - Julho de 2011
EDTED BH - HTML 5 e CSS 3 - Julho de 2011
 
WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011WTF Javascript - FrontInRio 2011
WTF Javascript - FrontInRio 2011
 
EDTED SP - HTML 5 e CSS 3 - Junho de 2011
EDTED SP - HTML 5 e CSS 3 - Junho de 2011EDTED SP - HTML 5 e CSS 3 - Junho de 2011
EDTED SP - HTML 5 e CSS 3 - Junho de 2011
 
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJRealize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
Realize mais com HTML 5 e CSS 3 - 16 EDTED - RJ
 
HTML 5 - Semana da Computação - UFF
HTML 5 - Semana da Computação - UFFHTML 5 - Semana da Computação - UFF
HTML 5 - Semana da Computação - UFF
 

Extreme Web Performance