SlideShare a Scribd company logo
1 of 47
Download to read offline
Drupal Performance
Dicas e técnicas para levar seu Drupal às nuvens




Drupalcamp São Paulo 2013
  by Paulino Michelazzo
Por quê WPO?
  web performance optimization
57% dos
                      43%
visitantes de sites
de viagens saem                       57%

após 3 segundos
       25% mobile




                            3 sec
                            > 3 sec
1 segundo é...




   - 7%        - 11%       - 16%
conversões   pageviews   satisfação
1.6 bilhões de dólares em
      vendas anuais
25% de acréscimo em pageviews
 7 a 12% aumento nas vendas
  50% de redução de hardware
tempo é dinheiro
definindo
performance
é lento ou está lento?
O Drupal é lento?

         Não!
         Desenvolvedores e
         e designers o
         tornam lento
1ª regra

definir se o website é lento
   ou se ele está lento
o que é lento?
aquilo que impacta na
conversão de usuários
Top 300K
  14%       86%


    1.6               10.9


 backend   frontend
2ª regra
  80 a 90% das
lesmas estão no
    front-end


          Mate-as antes
80 ~ 90% no Drupal
    tema
• Arquivos JavaScript
• Arquivos CSS
• Imagens
• Requisições HTTP
• DNS Lookup’s
3 arquivos




       ativar



1 arquivo
JavaScript

• Colocá-los no fim do código
• Minificar arquivos
• Carregar arquivos externos
  assincronamente

• Combinar arquivos
Carga assíncrona
var script = document.createElement('script'),
    scripts = document.getElementsByTagName('script')[0];
script.async = true;
script.src = url;
scripts.parentNode.insertBefore(script, scripts);
FiF - frame in frame
(function() {
  var url = 'http://example.org/js.js';
  var iframe = document.createElement('iframe');
  (iframe.frameElement || iframe).style.cssText =
    "width: 0; height: 0; border: 0";
  iframe.src = "javascript:false";
  var where = document.getElementsByTagName('script')[0];
  where.parentNode.insertBefore(iframe, where);
  var doc = iframe.contentWindow.document;
  doc.open().write('<body onload="'+
    'var js = document.createElement('script');'+
    'js.src = ''+ url +'';'+
    'document.body.appendChild(js);">');
  doc.close();
}());

         https://www.facebook.com/note.php?
            note_id=10151176218703920
8 arquivos




       ativar




3 arquivos
Apelando...

function hook_css_alter(&$css) {
  // Remove defaults.css file.
  unset($css[drupal_get_path('module','system')'/defaults.css']);
}
CSS

• Colocá-los no início do código
• Minificar arquivos
• Fugir de @import
• Combinar arquivos
Imagens




98k             25k

       73k
Imagens


      51.1k
53k             1.9k


       97%
Imagens

• JPG               DPI não se usa em

 • Progressivas         monitor!!!


 • Qualidade
• PNG
 • Indexadas
requisições HTTP

• Não fazer
• Não fazer
• Precisa fazer, reduza
 • (menos css, menos js, menos imagens)
o terror da requisição



404
DNS Lookup’s

• Reduza
• Reduza
• Precisa mesmo? Traga para mais perto
 • perto = dentro
3ª regra
   10 e 20%
rede e servidor

        difícil, mas não
           impossível
tempo para 1º byte

       DNS lookup


     Conexão inicial


     Tempo de espera
10 ~ 20% no Drupal
cache
• APC - Alternative PHP Cache
 • cache de código PHP
• Memcached
 • cache banco e código
• Varnish
 • cache não-autenticado
boost


• Módulo que não depende de terceiros
  para funcionamento

• Alternativa ao Varnish
views
• views cache
 • basta ativar
• views litepager (drupal.org/project/
  views_litepager)

 • remove query COUNT
 • não apresenta nº total de páginas
 • não permite navegação para última
cache de blocos


• Reduz o tempo de carga de blocos
• Maravilhoso em conjunto com
  memcache
Tips & Tricks
• realpath_cache_size = 64K (monitore)
• query_cache_size = 128M
• query_cache_limit = 1M
Corram!!!!!

• Database logging (dblog)
• Statistics
• PHP filter
Last words

• Otimização é trabalhosa
 • mas o resultado vale a pena
• Otimização é experiência
 • combinar ingredientes e cenários
obrigado

      Paulino Michelazzo

     about.me/pmichelazzo

More Related Content

What's hot

Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Celso Fernandes
 
Palestra: Otimização de websites
Palestra: Otimização de websitesPalestra: Otimização de websites
Palestra: Otimização de websitesIntrus
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Adler Medrado
 
Ebook - Check-list otimização WordPress
Ebook - Check-list otimização WordPressEbook - Check-list otimização WordPress
Ebook - Check-list otimização WordPressDaniel Paz
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPAdler Medrado
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Bruno Rocha
 
Performance (Web&PHP)
Performance (Web&PHP)Performance (Web&PHP)
Performance (Web&PHP)Nuno Loureiro
 
Instalando Drupal, Começando do Começo
Instalando Drupal, Começando do ComeçoInstalando Drupal, Começando do Começo
Instalando Drupal, Começando do Começosauloamui
 
WordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé DeveloperWordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé DeveloperPaulino Michelazzo
 
Turbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHPTurbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHPTiago Matos
 
Como se tornar um viciado em performance em 5 passos
Como se tornar um viciado em performance em 5 passosComo se tornar um viciado em performance em 5 passos
Como se tornar um viciado em performance em 5 passosPedro Chaves
 
Panorama atual do PHP
Panorama atual do PHPPanorama atual do PHP
Panorama atual do PHPAdler Medrado
 
A importância de padronizar nosso CSS
A importância de padronizar nosso CSSA importância de padronizar nosso CSS
A importância de padronizar nosso CSSFernando Henriques
 
Fazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFabio Telles Rodriguez
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java Jeff Prestes
 

What's hot (20)

Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
Reduzindo Tempo de Resposta do Servidor - WordCamp BH 2014
 
Palestra: Otimização de websites
Palestra: Otimização de websitesPalestra: Otimização de websites
Palestra: Otimização de websites
 
Phpreact flisol-fb-2014
Phpreact flisol-fb-2014Phpreact flisol-fb-2014
Phpreact flisol-fb-2014
 
Ebook - Check-list otimização WordPress
Ebook - Check-list otimização WordPressEbook - Check-list otimização WordPress
Ebook - Check-list otimização WordPress
 
Java Web Fácil com VRaptor
Java Web Fácil com VRaptorJava Web Fácil com VRaptor
Java Web Fácil com VRaptor
 
Desempenho web
Desempenho webDesempenho web
Desempenho web
 
XPT Framework
XPT FrameworkXPT Framework
XPT Framework
 
Por que Node JS?
Por que Node JS?Por que Node JS?
Por que Node JS?
 
Entendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHPEntendendo Conceitos Caching com PHP
Entendendo Conceitos Caching com PHP
 
Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011Desmistificando web2py - #TDC2011
Desmistificando web2py - #TDC2011
 
Performance (Web&PHP)
Performance (Web&PHP)Performance (Web&PHP)
Performance (Web&PHP)
 
Instalando Drupal, Começando do Começo
Instalando Drupal, Começando do ComeçoInstalando Drupal, Começando do Começo
Instalando Drupal, Começando do Começo
 
WordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé DeveloperWordCamp 2011 - BuscaPé Developer
WordCamp 2011 - BuscaPé Developer
 
Turbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHPTurbinando seu workflow com cakePHP
Turbinando seu workflow com cakePHP
 
Como se tornar um viciado em performance em 5 passos
Como se tornar um viciado em performance em 5 passosComo se tornar um viciado em performance em 5 passos
Como se tornar um viciado em performance em 5 passos
 
Panorama atual do PHP
Panorama atual do PHPPanorama atual do PHP
Panorama atual do PHP
 
A importância de padronizar nosso CSS
A importância de padronizar nosso CSSA importância de padronizar nosso CSS
A importância de padronizar nosso CSS
 
Fazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da portaFazendo uma manada de elefantes passar por baixo da porta
Fazendo uma manada de elefantes passar por baixo da porta
 
Criando sua stack de deploy php com git, jenkins e ansible
Criando sua stack de deploy php com git, jenkins e ansibleCriando sua stack de deploy php com git, jenkins e ansible
Criando sua stack de deploy php com git, jenkins e ansible
 
Quercus - Running PHP over Java
Quercus - Running PHP over Java Quercus - Running PHP over Java
Quercus - Running PHP over Java
 

Viewers also liked

Drupal 8: desenvolvendo fora da ilha
Drupal 8: desenvolvendo fora da ilhaDrupal 8: desenvolvendo fora da ilha
Drupal 8: desenvolvendo fora da ilhaLuiz Filho
 
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 85 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8Taller Negócio Digitais
 
Desenvolvimento web com (cms) Drupal
Desenvolvimento web com (cms) DrupalDesenvolvimento web com (cms) Drupal
Desenvolvimento web com (cms) DrupalEmerson Barros
 
1 Forum de SL de Duque de Caxias
1 Forum de SL de Duque de Caxias1 Forum de SL de Duque de Caxias
1 Forum de SL de Duque de CaxiasPaulino Michelazzo
 
Como vender e ganhar dinheiro com software livre
Como vender e ganhar dinheiro com software livreComo vender e ganhar dinheiro com software livre
Como vender e ganhar dinheiro com software livrePaulino Michelazzo
 

Viewers also liked (12)

Drupal 8: desenvolvendo fora da ilha
Drupal 8: desenvolvendo fora da ilhaDrupal 8: desenvolvendo fora da ilha
Drupal 8: desenvolvendo fora da ilha
 
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 85 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
5 Motivos pelos quais Profissionais de Marketing Vão Amar o Drupal 8
 
CMS Livres na Dataprev
CMS Livres na DataprevCMS Livres na Dataprev
CMS Livres na Dataprev
 
Desenvolvimento web com (cms) Drupal
Desenvolvimento web com (cms) DrupalDesenvolvimento web com (cms) Drupal
Desenvolvimento web com (cms) Drupal
 
Temas no drupal 8
Temas no drupal 8Temas no drupal 8
Temas no drupal 8
 
Palestra OSCON 2011
Palestra OSCON 2011Palestra OSCON 2011
Palestra OSCON 2011
 
Intercon 2011
Intercon 2011Intercon 2011
Intercon 2011
 
Inquebrable Drupal
Inquebrable DrupalInquebrable Drupal
Inquebrable Drupal
 
Intercon 2009
Intercon 2009Intercon 2009
Intercon 2009
 
1 Forum de SL de Duque de Caxias
1 Forum de SL de Duque de Caxias1 Forum de SL de Duque de Caxias
1 Forum de SL de Duque de Caxias
 
Como vender e ganhar dinheiro com software livre
Como vender e ganhar dinheiro com software livreComo vender e ganhar dinheiro com software livre
Como vender e ganhar dinheiro com software livre
 
Temas em Drupal
Temas em DrupalTemas em Drupal
Temas em Drupal
 

Similar to Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens

Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Rodolfo Fadino Junior
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...Cleber Dantas
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisrafaelberlanda
 
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.Gustavo Corrêa Alves
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaAlexandre Tarifa
 
Alta Performance em Aplicações Web
Alta Performance em Aplicações WebAlta Performance em Aplicações Web
Alta Performance em Aplicações WebAnderson Aguiar
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPressGuga Alves
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Fabiano Weimar
 
performance em jQuery apps
performance em jQuery appsperformance em jQuery apps
performance em jQuery appsDavidson Fellipe
 
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 2014Jerônimo Medina Madruga
 
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 PHPFlávio Lisboa
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHPFelipe Ribeiro
 
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
 
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
 

Similar to Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens (20)

Drupal Performance
Drupal PerformanceDrupal Performance
Drupal Performance
 
Performance Web com ASP.NET MVC
Performance Web com ASP.NET MVCPerformance Web com ASP.NET MVC
Performance Web com ASP.NET MVC
 
Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016
 
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
MSTechday - Técnicas e recursos para desenvolvimento web em cenários de grand...
 
Joomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portaisJoomla Day Brasil 2010: Customizações para grandes portais
Joomla Day Brasil 2010: Customizações para grandes portais
 
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.
 
Rest Teoria E Pratica
Rest Teoria E PraticaRest Teoria E Pratica
Rest Teoria E Pratica
 
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escalaTécnicas e recursos para desenvolvimento Web em cenários de grande escala
Técnicas e recursos para desenvolvimento Web em cenários de grande escala
 
Web Performance Client Side
Web Performance Client SideWeb Performance Client Side
Web Performance Client Side
 
Alta Performance em Aplicações Web
Alta Performance em Aplicações WebAlta Performance em Aplicações Web
Alta Performance em Aplicações Web
 
Browsers como vivem o que fazem
Browsers como vivem o que fazemBrowsers como vivem o que fazem
Browsers como vivem o que fazem
 
Otimização Front-end para WordPress
Otimização Front-end para WordPressOtimização Front-end para WordPress
Otimização Front-end para WordPress
 
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
Performance Tuning de Clusters Plone - PyConBrasil 2 (2006)
 
performance em jQuery apps
performance em jQuery appsperformance em jQuery apps
performance em jQuery apps
 
De 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuáriosDe 1 a 1.000.00 de usuários
De 1 a 1.000.00 de usuários
 
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
 
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
 
Otimizacao de websites em PHP
Otimizacao de websites em PHPOtimizacao de websites em PHP
Otimizacao de websites em PHP
 
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?
 
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
 

More from Paulino Michelazzo

As novidades do WordPress 3.0 para criativos
As novidades do WordPress 3.0 para criativosAs novidades do WordPress 3.0 para criativos
As novidades do WordPress 3.0 para criativosPaulino Michelazzo
 
Criando e sustentando uma empresa livre
Criando e sustentando uma empresa livreCriando e sustentando uma empresa livre
Criando e sustentando uma empresa livrePaulino Michelazzo
 
CMS Livres Gestao de conhecimento para web
CMS Livres   Gestao de conhecimento para webCMS Livres   Gestao de conhecimento para web
CMS Livres Gestao de conhecimento para webPaulino Michelazzo
 
Criando e sustentando uma empresa livre - Solisc
Criando e sustentando uma empresa livre - SoliscCriando e sustentando uma empresa livre - Solisc
Criando e sustentando uma empresa livre - SoliscPaulino Michelazzo
 
Por quê blogar com e sem WordPress
Por quê blogar com e sem WordPressPor quê blogar com e sem WordPress
Por quê blogar com e sem WordPressPaulino Michelazzo
 
Criando e sustentando uma empresa livre - ENECOMP
Criando e sustentando uma empresa livre - ENECOMPCriando e sustentando uma empresa livre - ENECOMP
Criando e sustentando uma empresa livre - ENECOMPPaulino Michelazzo
 
Soluções eficientes e de baixo custo em e-commerce
Soluções eficientes e de baixo custo em e-commerceSoluções eficientes e de baixo custo em e-commerce
Soluções eficientes e de baixo custo em e-commercePaulino Michelazzo
 
Reconstruíndo um país: O Software Livre na justiça de Timor Leste
Reconstruíndo um país: O Software Livre na justiça de Timor LesteReconstruíndo um país: O Software Livre na justiça de Timor Leste
Reconstruíndo um país: O Software Livre na justiça de Timor LestePaulino Michelazzo
 
Drupal - Gestor livre de conteúdo
Drupal - Gestor livre de conteúdoDrupal - Gestor livre de conteúdo
Drupal - Gestor livre de conteúdoPaulino Michelazzo
 
Competências para o mercado de TI
Competências para o mercado de TICompetências para o mercado de TI
Competências para o mercado de TIPaulino Michelazzo
 
Drupal - muito além de um CMS
Drupal - muito além de um CMSDrupal - muito além de um CMS
Drupal - muito além de um CMSPaulino Michelazzo
 
Criando e sustentando uma empresa livre
Criando e sustentando uma empresa livreCriando e sustentando uma empresa livre
Criando e sustentando uma empresa livrePaulino Michelazzo
 
Cms Livres - Não Reinventando a Roda no Desenvolvimento Web
Cms Livres - Não Reinventando a Roda no Desenvolvimento WebCms Livres - Não Reinventando a Roda no Desenvolvimento Web
Cms Livres - Não Reinventando a Roda no Desenvolvimento WebPaulino Michelazzo
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPaulino Michelazzo
 

More from Paulino Michelazzo (19)

HTML 5 - A mudança da Web
HTML 5 - A mudança da WebHTML 5 - A mudança da Web
HTML 5 - A mudança da Web
 
As novidades do WordPress 3.0 para criativos
As novidades do WordPress 3.0 para criativosAs novidades do WordPress 3.0 para criativos
As novidades do WordPress 3.0 para criativos
 
Inovação em software
Inovação em softwareInovação em software
Inovação em software
 
Criando e sustentando uma empresa livre
Criando e sustentando uma empresa livreCriando e sustentando uma empresa livre
Criando e sustentando uma empresa livre
 
CMS Livres Gestao de conhecimento para web
CMS Livres   Gestao de conhecimento para webCMS Livres   Gestao de conhecimento para web
CMS Livres Gestao de conhecimento para web
 
Criando e sustentando uma empresa livre - Solisc
Criando e sustentando uma empresa livre - SoliscCriando e sustentando uma empresa livre - Solisc
Criando e sustentando uma empresa livre - Solisc
 
CMS Livres - EDTED Recife
CMS Livres - EDTED RecifeCMS Livres - EDTED Recife
CMS Livres - EDTED Recife
 
Por quê blogar com e sem WordPress
Por quê blogar com e sem WordPressPor quê blogar com e sem WordPress
Por quê blogar com e sem WordPress
 
6º FGSL
6º FGSL6º FGSL
6º FGSL
 
Criando e sustentando uma empresa livre - ENECOMP
Criando e sustentando uma empresa livre - ENECOMPCriando e sustentando uma empresa livre - ENECOMP
Criando e sustentando uma empresa livre - ENECOMP
 
Yes We Can
Yes We CanYes We Can
Yes We Can
 
Soluções eficientes e de baixo custo em e-commerce
Soluções eficientes e de baixo custo em e-commerceSoluções eficientes e de baixo custo em e-commerce
Soluções eficientes e de baixo custo em e-commerce
 
Reconstruíndo um país: O Software Livre na justiça de Timor Leste
Reconstruíndo um país: O Software Livre na justiça de Timor LesteReconstruíndo um país: O Software Livre na justiça de Timor Leste
Reconstruíndo um país: O Software Livre na justiça de Timor Leste
 
Drupal - Gestor livre de conteúdo
Drupal - Gestor livre de conteúdoDrupal - Gestor livre de conteúdo
Drupal - Gestor livre de conteúdo
 
Competências para o mercado de TI
Competências para o mercado de TICompetências para o mercado de TI
Competências para o mercado de TI
 
Drupal - muito além de um CMS
Drupal - muito além de um CMSDrupal - muito além de um CMS
Drupal - muito além de um CMS
 
Criando e sustentando uma empresa livre
Criando e sustentando uma empresa livreCriando e sustentando uma empresa livre
Criando e sustentando uma empresa livre
 
Cms Livres - Não Reinventando a Roda no Desenvolvimento Web
Cms Livres - Não Reinventando a Roda no Desenvolvimento WebCms Livres - Não Reinventando a Roda no Desenvolvimento Web
Cms Livres - Não Reinventando a Roda no Desenvolvimento Web
 
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHPPog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
Pog Nunca Mais - Técnicas e Macetes para o Desenvolvimento em PHP
 

Drupal Performance - Dicas e técnicas para levar seu Drupal às nuvens

  • 1. Drupal Performance Dicas e técnicas para levar seu Drupal às nuvens Drupalcamp São Paulo 2013 by Paulino Michelazzo
  • 2. Por quê WPO? web performance optimization
  • 3.
  • 4. 57% dos 43% visitantes de sites de viagens saem 57% após 3 segundos 25% mobile 3 sec > 3 sec
  • 5. 1 segundo é... - 7% - 11% - 16% conversões pageviews satisfação
  • 6. 1.6 bilhões de dólares em vendas anuais
  • 7. 25% de acréscimo em pageviews 7 a 12% aumento nas vendas 50% de redução de hardware
  • 10. é lento ou está lento?
  • 11.
  • 12.
  • 13. O Drupal é lento? Não! Desenvolvedores e e designers o tornam lento
  • 14. 1ª regra definir se o website é lento ou se ele está lento
  • 15. o que é lento?
  • 16. aquilo que impacta na conversão de usuários
  • 17.
  • 18. Top 300K 14% 86% 1.6 10.9 backend frontend
  • 19. 2ª regra 80 a 90% das lesmas estão no front-end Mate-as antes
  • 20. 80 ~ 90% no Drupal tema
  • 21. • Arquivos JavaScript • Arquivos CSS • Imagens • Requisições HTTP • DNS Lookup’s
  • 22. 3 arquivos ativar 1 arquivo
  • 23. JavaScript • Colocá-los no fim do código • Minificar arquivos • Carregar arquivos externos assincronamente • Combinar arquivos
  • 24. Carga assíncrona var script = document.createElement('script'), scripts = document.getElementsByTagName('script')[0]; script.async = true; script.src = url; scripts.parentNode.insertBefore(script, scripts);
  • 25. FiF - frame in frame (function() { var url = 'http://example.org/js.js'; var iframe = document.createElement('iframe'); (iframe.frameElement || iframe).style.cssText = "width: 0; height: 0; border: 0"; iframe.src = "javascript:false"; var where = document.getElementsByTagName('script')[0]; where.parentNode.insertBefore(iframe, where); var doc = iframe.contentWindow.document; doc.open().write('<body onload="'+ 'var js = document.createElement('script');'+ 'js.src = ''+ url +'';'+ 'document.body.appendChild(js);">'); doc.close(); }()); https://www.facebook.com/note.php? note_id=10151176218703920
  • 26. 8 arquivos ativar 3 arquivos
  • 27. Apelando... function hook_css_alter(&$css) { // Remove defaults.css file. unset($css[drupal_get_path('module','system')'/defaults.css']); }
  • 28. CSS • Colocá-los no início do código • Minificar arquivos • Fugir de @import • Combinar arquivos
  • 29. Imagens 98k 25k 73k
  • 30. Imagens 51.1k 53k 1.9k 97%
  • 31. Imagens • JPG DPI não se usa em • Progressivas monitor!!! • Qualidade • PNG • Indexadas
  • 32. requisições HTTP • Não fazer • Não fazer • Precisa fazer, reduza • (menos css, menos js, menos imagens)
  • 33. o terror da requisição 404
  • 34. DNS Lookup’s • Reduza • Reduza • Precisa mesmo? Traga para mais perto • perto = dentro
  • 35. 3ª regra 10 e 20% rede e servidor difícil, mas não impossível
  • 36. tempo para 1º byte DNS lookup Conexão inicial Tempo de espera
  • 37.
  • 38. 10 ~ 20% no Drupal
  • 39. cache • APC - Alternative PHP Cache • cache de código PHP • Memcached • cache banco e código • Varnish • cache não-autenticado
  • 40. boost • Módulo que não depende de terceiros para funcionamento • Alternativa ao Varnish
  • 41. views • views cache • basta ativar • views litepager (drupal.org/project/ views_litepager) • remove query COUNT • não apresenta nº total de páginas • não permite navegação para última
  • 42. cache de blocos • Reduz o tempo de carga de blocos • Maravilhoso em conjunto com memcache
  • 44. • realpath_cache_size = 64K (monitore) • query_cache_size = 128M • query_cache_limit = 1M
  • 45. Corram!!!!! • Database logging (dblog) • Statistics • PHP filter
  • 46. Last words • Otimização é trabalhosa • mas o resultado vale a pena • Otimização é experiência • combinar ingredientes e cenários
  • 47. obrigado Paulino Michelazzo about.me/pmichelazzo