SlideShare ist ein Scribd-Unternehmen logo
1 von 30
Downloaden Sie, um offline zu lesen
ALTA PERFORMANCE EM
      APLICAÇÕES WEB




        {Anderson Aguiar
             @andersonaguiar   }
Geralmente as principais preocupações no
desenvolvimento de uma aplicação web são:

Modelar a base de dados, criar chaves, índices...

Documentar o back-end, fazer testes, evitar duplicação de
código, etc.
É correto fazer isso?!

Com certeza. Mas não adianta SÓ o back-end estar todo
“bonitinho” e deixar o front de qualquer jeito, sendo que 70-90%
do tempo de carregamento de uma página é gasto no download
de elementos do front-end, como imagens, CSS e Javascript.
A importância da performance no front-end :O
•Esperar é ruim!

•Esperar é muito irritante!

•Esperar estressa!

•Tempo é dinheiro.
O Yahoo! descobriu que, para cada 400ms de melhora na
performance, seu tráfego aumenta em 9%

Ao cortar 2,2s da landing page do Firefox, a Mozilla aumentou o
número de downloads em 15,4%, totalizando um ganho de mais
de 60 milhões de cópias por ano

A Amazon concluiu que apenas 100ms de melhora aumentam
1% seu faturamento

O Google aumentou o número de resultados por página de 10
para 30. Isso aumentou o tempo de carregamento de 0.4s para
0.9s, o que diminuiu em 20% o tráfego das buscas
 Falta de cuidado na exportação das imagens
 Redimensionar imagens no HTML
 Muitas requisições HTTP(imagens, JS, CSS)
 Inclusão de arquivos não utilizados na página
 CSS no final da página
 JS no início da página(às vezes é necessário)
 Javascript e CSS inline(não é possível compartilhar em outras
páginas, dificulta o cache)
 Tag <img /> com o atributo src vazio ou errado
 Não utilização de sprites
 Códigos duplicados
1.  CSS no topo e JS no fim da página
2.  Utilize imagens, CSS e JS somente nas páginas que for necessário
3.  Combine arquivos JS, CSS e imagens(Sprite) para diminuir as
    requisições HTTP
4. Remova scripts duplicados
5. Minifique JS e CSS!
6. NÃO redimensione imagens no HTML
7. Exporte as imagens no formato correto
8. Google AJAX Libraries API para servir estruturas javascript
    populares (como Mootools, jQuery e Dojo)
9. Utilize JS e CSS externos
10. Não utilize expressões no CSS, são custosas!
11. Evite criar CSS separado para impressão
Exemplo:


  Tamanho original: 256x32


<img src=“forkintuba.png” alt=“...” width=“256” height=“32” />

Resultado:


<img src=“forkintuba.png” alt=“...” width=“80” />

Resultado:
Combine cores semelhantes

Tente usar poucas cores, assim
poderá ser exportado em PNG8

Sprites horizontais tendem a ser
menores

Avaliar páginas que irão utilizar
1 requisição ao invés de 10!        1 requisição ao invés de 6!

background-position: -0px -0px;
background-position: -20px -0px;
background-position: -40px -0px;
background-position: -60px -0px;
background-position: -80px -0px;    background-position: 0px 0px;
background-position: -100px -0px;   background-position: 0px -60px;
background-position: -120px -0px;   background-position: 120px 0px;
background-position: -140px -0px;   background-position: 120px -60px;
background-position: -160px -0px;   background-position: 240px 0px;
background-position: -180px -0px;   background-position: 240px -60px;


Tools:
http://css-sprit.es/
http://spritegen.website-performance.org/
http://www.spritecow.com/
Eles também usam :)
Utilize a ferramenta do Yahoo.
http://www.smushit.com/ysm
ush.it/
Pelo firebug, ou enviando
todas através do site


 Teste vários níveis de qualidade da imagem(não escolha qualquer
  extensão)
 Remova cores não utilizadas
 Remova metadata dos JPEGs
 Utilize PNG8 ao invés de GIFs
reset.css                    funcoes.js
fonts.css                    slider.js
header.css   principal.css   lightbox.js   noticias.js
menu.css                     menu.js
footer.css                   timer.js


    5>1                            5>1


                   10 > 2
YUI Compressor:
http://developer.yahoo.com/yui/compressor/

Google Closure Compiler:
http://code.google.com/intl/pt-BR/closure/compiler/

JSMIN:
http://www.crockford.com/javascript/jsmin.html

JS Minifier:
http://fmarcia.info/jsmin/test.html

JS Compress:
http://jscompress.com/
Antes




 9.86k
Depois




  7.6k
YUI Compressor:
http://developer.yahoo.com/yui/compressor/

CSS Compressor & Minifier:
http://www.minifycss.com/css-compressor/

CSS Compressor:
http://www.csscompressor.com/

Refresh-sf(using YUI Compressor):
http://www.refresh-sf.com/yui/
Antes




 22.4k
Depois




  17.5k
Exemplo de melhoria
Online JavaScript/CSS Compression Using YUI Compressor
http://www.refresh-sf.com/yui/
O que eles fizeram: Simplesmente combinaram os arquivos
Javascript e CSS e removeram os não utilizados. Com isso
diminuiram 2.2 segundos do tempo de carregamento da
página.

Feito isso, obtiveram15,4% de aumento nos downloads do
browser.
= combinação perfeita




Utilize as ferramentas acima para diagnosticar detalhadamente o
seu site. Monitore constantemente, e implemente melhorias
para otimizar ainda mais suas páginas.
Foque no front-end, você deve fazer o controle do tempo de resposta.
Com estas técnicas + (nginx, gzip e cache), você poderá reduzir em
50%(ou mais) o tempo carregamento da página, consequentemente
melhorar a experiência do usuário e ajudar na parte de SEO.


Menos elementos             = Menor tempo de carregamento
Menos requests              = Menor tempo de carregamento
Menor tempo de carregamento =  && $$



“Nunca pare, sempre dá para melhorar um pouco mais “

:)
https://groups.google.com/forum/#!forum/html5-css3-brasil

https://groups.google.com/forum/#!forum/jquery-br

https://groups.google.com/forum/#!forum/listaphp

https://groups.google.com/forum/#!forum/dojotuba
http://developer.yahoo.com/performance/rules.html

http://code.google.com/intl/pt-BR/speed/page-speed/docs/rules_intro.html

http://prezi.com/xnety6t2emcs/construindo-aplicacoes-web-de-alta-performance-
front-end/

http://www.slideshare.net/stoyan/high-performance-web-pages-20-new-best-
practices

http://stevesouders.com/examples/expression-counter.php

http://blog.caelum.com.br/por-uma-web-mais-rapida-26-tecnicas-de-otimizacao-de-
sites/

http://www.webperformancetoday.com/2010/06/15/everything-you-wanted-to-know-
about-web-performance/
Dúvidas?
Obrigado!
                      Disponível em:
http://www.slideshare.net/andersonagr



                          Contato:
                   @andersonaguiar
        andersonaguiarrr@gmail.com

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

O Básico para criar Sites Otimizados em Elementor
O Básico para criar Sites Otimizados em ElementorO Básico para criar Sites Otimizados em Elementor
O Básico para criar Sites Otimizados em Elementor
 
Performance mobile: eleições 2014
Performance mobile: eleições 2014Performance mobile: eleições 2014
Performance mobile: eleições 2014
 
Mobile First
Mobile FirstMobile First
Mobile First
 
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
 
WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015WordPress para Gestores de Conteúdo - WordCamp BH 2015
WordPress para Gestores de Conteúdo - WordCamp BH 2015
 
Performance e boas_praticas_de_web
Performance e boas_praticas_de_webPerformance e boas_praticas_de_web
Performance e boas_praticas_de_web
 
Como instalar o WordPress no seu computador
Como instalar o WordPress no seu computadorComo instalar o WordPress no seu computador
Como instalar o WordPress no seu computador
 
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
WordPress Multisite: Desenvolvendo Portais com Sites Interligados.
 
Drupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos DesafiosDrupal 7 - Nova Versão para Novos Desafios
Drupal 7 - Nova Versão para Novos Desafios
 
Otimize sua web page e web components
Otimize sua web page e web componentsOtimize sua web page e web components
Otimize sua web page e web components
 
SASS e Compass, O CSS Ninja Workflow
SASS e Compass, O CSS Ninja WorkflowSASS e Compass, O CSS Ninja Workflow
SASS e Compass, O CSS Ninja Workflow
 
MVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASMMVP Week 2020 - Aplicações Modernas com Blazor WASM
MVP Week 2020 - Aplicações Modernas com Blazor WASM
 
Agilizando o desenvolvimento web com SASS
Agilizando o desenvolvimento web com SASSAgilizando o desenvolvimento web com SASS
Agilizando o desenvolvimento web com SASS
 
Sass: Estilo levado à sério
Sass: Estilo levado à sérioSass: Estilo levado à sério
Sass: Estilo levado à sério
 
Guia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devsGuia prático de desenvolvimento front-end para django devs
Guia prático de desenvolvimento front-end para django devs
 
Componetização de CSS com o Compass (Front in Sampa 2013)
Componetização de CSS com o Compass (Front in Sampa 2013)Componetização de CSS com o Compass (Front in Sampa 2013)
Componetização de CSS com o Compass (Front in Sampa 2013)
 
Utilização do JDB Framework para agilizar o desenvolvimento em Java Desktop
Utilização do JDB Framework para agilizar o desenvolvimento em Java DesktopUtilização do JDB Framework para agilizar o desenvolvimento em Java Desktop
Utilização do JDB Framework para agilizar o desenvolvimento em Java Desktop
 
Frontend (RailsMG)
Frontend (RailsMG)Frontend (RailsMG)
Frontend (RailsMG)
 
Do marketplace ao WordPress - WordCamp BH 2015
Do marketplace ao WordPress -  WordCamp BH 2015Do marketplace ao WordPress -  WordCamp BH 2015
Do marketplace ao WordPress - WordCamp BH 2015
 
WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?WordPress Multisite: O que são, onde vivem, do que se alimentam?
WordPress Multisite: O que são, onde vivem, do que se alimentam?
 

Andere mochten auch

Apresentação1
Apresentação1Apresentação1
Apresentação1
Alba Assis
 
138009610 aula2-equipamentos-de-redes-hubs
138009610 aula2-equipamentos-de-redes-hubs138009610 aula2-equipamentos-de-redes-hubs
138009610 aula2-equipamentos-de-redes-hubs
Marco Guimarães
 
Hub switch repetidores
Hub switch repetidoresHub switch repetidores
Hub switch repetidores
Tiago Garcia
 
Tipos de cabos
Tipos de cabosTipos de cabos
Tipos de cabos
BrunoXina
 

Andere mochten auch (20)

TCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações WebTCC - Escalabilidade em Aplicações Web
TCC - Escalabilidade em Aplicações Web
 
Apresentação1
Apresentação1Apresentação1
Apresentação1
 
Ethernet historia
Ethernet   historiaEthernet   historia
Ethernet historia
 
138009610 aula2-equipamentos-de-redes-hubs
138009610 aula2-equipamentos-de-redes-hubs138009610 aula2-equipamentos-de-redes-hubs
138009610 aula2-equipamentos-de-redes-hubs
 
Camada 2 do modelo OSI Funções
Camada 2 do modelo OSI FunçõesCamada 2 do modelo OSI Funções
Camada 2 do modelo OSI Funções
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06
 
Cabos coaxiais
Cabos coaxiaisCabos coaxiais
Cabos coaxiais
 
Aula 1
Aula 1Aula 1
Aula 1
 
WANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de Oliveira
WANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de OliveiraWANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de Oliveira
WANs e Roteadores Cap. 1 - CCNA 3.1 Wellington Pinto de Oliveira
 
Hub switch repetidores
Hub switch repetidoresHub switch repetidores
Hub switch repetidores
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
Cabos de rede
Cabos de redeCabos de rede
Cabos de rede
 
Tipos de cabos
Tipos de cabosTipos de cabos
Tipos de cabos
 
Preso ideenwet gr 20_07_2010
Preso ideenwet gr 20_07_2010Preso ideenwet gr 20_07_2010
Preso ideenwet gr 20_07_2010
 
Bomba de Disco Excêntrico Mouvex X Bomba de Pistão Circunferencial Waukesha
Bomba de Disco Excêntrico Mouvex X Bomba de Pistão Circunferencial WaukeshaBomba de Disco Excêntrico Mouvex X Bomba de Pistão Circunferencial Waukesha
Bomba de Disco Excêntrico Mouvex X Bomba de Pistão Circunferencial Waukesha
 
Ivry Diaporama Intervention Jean Jouzel
Ivry Diaporama Intervention Jean JouzelIvry Diaporama Intervention Jean Jouzel
Ivry Diaporama Intervention Jean Jouzel
 

Ähnlich wie 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
introfini
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
Henrique Lima
 

Ähnlich wie Alta Performance em Aplicações Web (20)

Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.Performance - Acelere seu site! Na web tempo é mais que dinheiro.
Performance - Acelere seu site! Na web tempo é mais que dinheiro.
 
temp EWP
temp EWPtemp EWP
temp EWP
 
Web Performance Client Side
Web Performance Client SideWeb Performance Client Side
Web Performance Client Side
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPress
 
Otimizacao Front-End para WordPress - OlhoSEO 2013
Otimizacao Front-End para WordPress - OlhoSEO 2013Otimizacao Front-End para WordPress - OlhoSEO 2013
Otimizacao Front-End para WordPress - OlhoSEO 2013
 
Otimização de Performance Web
Otimização de Performance WebOtimização de Performance Web
Otimização de Performance 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
 
Performance na web, além do framework
Performance na web, além do frameworkPerformance na web, além do framework
Performance na web, além do framework
 
Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014Need for (web) speed - Tchelinux Pelotas 2014
Need for (web) speed - Tchelinux Pelotas 2014
 
Aumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinadaAumente a performance de seu site de maneira disciplinada
Aumente a performance de seu site de maneira disciplinada
 
Aumente a performance de seu site
Aumente a performance de seu siteAumente a performance de seu site
Aumente a performance de seu site
 
Otimizando seu Site para Alta Performance - ConaSearch
Otimizando seu Site para Alta Performance - ConaSearchOtimizando seu Site para Alta Performance - ConaSearch
Otimizando seu Site para Alta Performance - ConaSearch
 
Performance e otimização no wordpress
Performance e otimização no wordpressPerformance e otimização no wordpress
Performance e otimização no wordpress
 
PHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHPPHP Papa-Léguas: Performance em PHP
PHP Papa-Léguas: Performance em PHP
 
Otimização de Websites para Ganho de Performance & Resiliência
Otimização de Websites para Ganho de Performance & ResiliênciaOtimização de Websites para Ganho de Performance & Resiliência
Otimização de Websites para Ganho de Performance & Resiliência
 
JS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front endJS Experience 2017 - Otimizando o front end
JS Experience 2017 - Otimizando o front end
 
Como Perder Peso (no browser)
Como Perder Peso (no browser)Como Perder Peso (no browser)
Como Perder Peso (no browser)
 
don't repeat yourself front-ender
don't repeat yourself front-enderdon't repeat yourself front-ender
don't repeat yourself front-ender
 
A Evolução do Front end
A Evolução do Front endA Evolução do Front end
A Evolução do Front end
 
Lightning Talk: Webdev who?
Lightning Talk: Webdev who?Lightning Talk: Webdev who?
Lightning Talk: Webdev who?
 

Kürzlich hochgeladen

Kürzlich hochgeladen (9)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Luís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdfLuís Kitota AWS Discovery Day Ka Solution.pdf
Luís Kitota AWS Discovery Day Ka Solution.pdf
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Programação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdfProgramação Orientada a Objetos - 4 Pilares.pdf
Programação Orientada a Objetos - 4 Pilares.pdf
 
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docxATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
ATIVIDADE 1 - SISTEMAS DISTRIBUÍDOS E REDES - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 

Alta Performance em Aplicações Web