Post on 29-Jun-2015
description
Drupal PerformanceDicas e técnicas para levar seu Drupal às nuvens
Drupalcamp São Paulo 2013 by Paulino Michelazzo
Por quê WPO?web performance optimization
43%
57%
3 sec> 3 sec
57% dos visitantes de sites de viagens saem após 3 segundos
25% mobile
1 segundo é...
- 11%pageviews
- 7%conversões
- 16%satisfação
1.6 bilhões de dólares em vendas anuais
25% de acréscimo em pageviews7 a 12% aumento nas vendas50% 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
14% 86%
backend frontend
10.91.6
Top 300K
80 a 90% das lesmas estão no
front-end
Mate-as antes
2ª regra
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
3 arquivos
ativar
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
98k 25k
73k
Imagens
53k 1.9k
51.1k
97%
Imagens
Imagens
• JPG
• Progressivas
• Qualidade
• PNG
• Indexadas
DPI não se usa em monitor!!!
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
• Database logging (dblog)
• Statistics
• PHP filter
Corram!!!!!
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