extreme web performance

44
Extreme Web Performance Leo Balter WPMeetupRJ 2012

Upload: leonardo-balter

Post on 22-Jun-2015

1.399 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Extreme Web Performance

Extreme Web Performance

Leo BalterWPMeetupRJ 2012

Page 3: Extreme Web Performance
Page 5: Extreme Web Performance

Steve Souders

"Performance golden rule: Optimize front-end performance first, that's where 80/90% of the end-user

response time is spent."

High Performance Web Sites

Page 6: Extreme Web Performance

80 a 90% do tempo de resposta ao usuário está no frontend!

Page 7: Extreme Web Performance

Por que?

Page 8: Extreme Web Performance
Page 9: Extreme Web Performance

Google

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

http://goo.gl/h3FX3

Page 10: Extreme Web Performance

Amazon

• +100ms = -1% de vendas

• ~ $67 milhões/dia

• 1seg = - $2.4 bilhões por ano!

http://goo.gl/zSd8q

Page 11: Extreme Web Performance

Shopzilla.com

• -5 segunos = + conversão (7 a 12%)

• 2x referências em sites de busca

• 50% servidores necessários

http://goo.gl/AMCx2

Page 12: Extreme Web Performance

Tamanho também é velocidade

Page 13: Extreme Web Performance

Terra

Page 14: Extreme Web Performance

http://goo.gl/mecWnPsicologia da Performance

Parece mais lento quando:

• desagradável

• desconhecido

• chato

• muita coisa pra acompanhar

• nunca coloque muitos

• marcadores

• em um slide

• nunca

• é difícil de analisar

Page 15: Extreme Web Performance

http://goo.gl/mecWnPsicologia da Performance

Efeitos da espera

• Irritação

• Estresse

• Colesterol alto

• Morte!

Page 16: Extreme Web Performance

1 segundo

• 11% de page views

• 7% de conversão

• 16% Satisfação do consumidor

Page 18: Extreme Web Performance

http://goo.gl/iz5qc

Comportamento Não otimizado Otimizado

Bounce Rate 14,35% 13,38%

Páginas / Visita 11,04 15,64

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

Page 19: Extreme Web Performance

Ferramentas

• Yahoo YSlow

• Google PageSpeed

• Abas de “Rede” nos DevTools (Firefox, Chrome e Opera)

• WebPageTest

Page 20: Extreme Web Performance

LazyLoad

• <script async src=”file.js”></script>

• YepNope.js

Page 21: Extreme Web Performance

Unificar e Minimizar

• JavaScript

• CSS

• Imagens (Background Sprites)

Page 22: Extreme Web Performance

Javascript

• UglifyJS

• PimpMyJs.com

• Google Closure Compiler

Page 23: Extreme Web Performance
Page 24: Extreme Web Performance
Page 25: Extreme Web Performance

CSS

• Sqwish - https://github.com/ded/sqwish

• YUI CSS Compressor

Page 26: Extreme Web Performance

Imagens

• YSlow Smush.it http://goo.gl/gk1XQ

• Photoshop / GIMP

Page 27: Extreme Web Performance

CDN

• Pense nos cookies!

Page 28: Extreme Web Performance

Código ruim afeta performance!

• HTML, CSS e Javascript

• Validação W3C, CSSLint e JSHint!

Page 29: Extreme Web Performance

Wordpress

• W3 Total Cache:

• Closure Compiler (JS)

• YUI Compressor (CSS)

• HTML Tidy

Page 30: Extreme Web Performance

Wordpress

• W3 Total Cache:

• Unifica e Minimiza tudo!

• mas...

Page 31: Extreme Web Performance

Grunt!

• via node.js

• https://github.com/cowboy/grunt/

Page 32: Extreme Web Performance

jQuery

• + recente = + performance

• fuja de anti padrões

Page 33: Extreme Web Performance

Seletores jQuery$(‘#minha_id’)

$(‘div.classes’)

$(‘div’)

$(‘.classes’)

$(‘[atributo]’)

+

-

Page 34: Extreme Web Performance

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

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

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

Page 35: Extreme Web Performance

Tempo no console

console.time(‘minha tarefa’);

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

console.timeEnd(‘minha tarefa’);

Page 36: Extreme Web Performance

JS: esquerda pra direita

$(‘#menu li a’)

Page 37: Extreme Web Performance

CSS: direita pra esquerda

#menu li a {text-decoration: none;

}

WTF!

Page 38: Extreme Web Performance

CSS: direita pra esquerda

.menuLink {text-decoration: none;

}

Mais rápido! (no CSS)

Page 39: Extreme Web Performance

CSS Faz diferença!

Page 40: Extreme Web Performance

Viagem no tempo

Page 41: Extreme Web Performance

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));

Page 42: Extreme Web Performance

1002003004005006007008009001000valor de i: 1000tempo em ms: 8

user!0m0.048s

Page 43: Extreme Web Performance

Percepções

• Toque

• Visão

• Resposta do Console

Page 44: Extreme Web Performance