SlideShare uma empresa Scribd logo
1 de 47
Baixar para ler 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
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 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
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

Mais conteúdo relacionado

Mais procurados

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
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorZabbix BR
 
Frontend (Rails For Kids)
Frontend (Rails For Kids)Frontend (Rails For Kids)
Frontend (Rails For Kids)Daniel Lopes
 
Performance mobile: eleições 2014
Performance mobile: eleições 2014Performance mobile: eleições 2014
Performance mobile: eleições 2014Webysther Faria
 
PORTUGUESE SquashBrochure
PORTUGUESE SquashBrochurePORTUGUESE SquashBrochure
PORTUGUESE SquashBrochureAndr Moura
 
Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Daniel Lopes
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018Renato Groff
 
SASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-endSASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-endAnderson Aguiar
 
Análise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBAnálise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBSaveincloud
 

Mais procurados (10)

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
 
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do InteriorPrimeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
Primeiros passos com a API do Zabbix - 3º Zabbix Meetup do Interior
 
Frontend (Rails For Kids)
Frontend (Rails For Kids)Frontend (Rails For Kids)
Frontend (Rails For Kids)
 
Performance mobile: eleições 2014
Performance mobile: eleições 2014Performance mobile: eleições 2014
Performance mobile: eleições 2014
 
PORTUGUESE SquashBrochure
PORTUGUESE SquashBrochurePORTUGUESE SquashBrochure
PORTUGUESE SquashBrochure
 
Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)Minicurso Ruby e Rails (RailsMG UNA)
Minicurso Ruby e Rails (RailsMG UNA)
 
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
NoSQL na nuvem com o Azure Cosmos DB - MVPConf 2018
 
temp EWP
temp EWPtemp EWP
temp EWP
 
SASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-endSASS + COMPASS - Alta Produtividade no Front-end
SASS + COMPASS - Alta Produtividade no Front-end
 
Análise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDBAnálise de Performance do MySQL e MariaDB
Análise de Performance do MySQL e MariaDB
 

Destaque

Regras do jogo
Regras do jogoRegras do jogo
Regras do jogojoanai
 
corre;'ao da prova - tmp
corre;'ao da prova - tmpcorre;'ao da prova - tmp
corre;'ao da prova - tmpmalcomtux
 
Biblioteca cartaz quimica_final_edit_v2
Biblioteca cartaz quimica_final_edit_v2Biblioteca cartaz quimica_final_edit_v2
Biblioteca cartaz quimica_final_edit_v2Maria Elisa
 
Think&Play Política - Apresentação de Pitching
Think&Play Política - Apresentação de PitchingThink&Play Política - Apresentação de Pitching
Think&Play Política - Apresentação de PitchingNatasha Higa
 

Destaque (7)

Arturo[1]
Arturo[1]Arturo[1]
Arturo[1]
 
Despedida
DespedidaDespedida
Despedida
 
Charla en la sede de la uis.. emprendimiento
Charla en la sede de la uis.. emprendimientoCharla en la sede de la uis.. emprendimiento
Charla en la sede de la uis.. emprendimiento
 
Regras do jogo
Regras do jogoRegras do jogo
Regras do jogo
 
corre;'ao da prova - tmp
corre;'ao da prova - tmpcorre;'ao da prova - tmp
corre;'ao da prova - tmp
 
Biblioteca cartaz quimica_final_edit_v2
Biblioteca cartaz quimica_final_edit_v2Biblioteca cartaz quimica_final_edit_v2
Biblioteca cartaz quimica_final_edit_v2
 
Think&Play Política - Apresentação de Pitching
Think&Play Política - Apresentação de PitchingThink&Play Política - Apresentação de Pitching
Think&Play Política - Apresentação de Pitching
 

Semelhante a Dicas para melhorar o desempenho do Drupal

Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Rodolfo Fadino Junior
 
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
 
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
 
Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Fabiano Weimar
 
Estratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços onlineEstratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços onlineGuto Xavier
 
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
 
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
 
Darkmira - Performance em aplicações PHP
Darkmira - Performance em aplicações PHPDarkmira - Performance em aplicações PHP
Darkmira - Performance em aplicações PHPCiro Vargas
 
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
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetMarcos Petry
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel PetryTchelinux
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxDell Technologies
 
Entregando imagens na internet
Entregando imagens na internetEntregando imagens na internet
Entregando imagens na internetCaio Tedim
 
Performance em-front-end-luiz-tanure
Performance em-front-end-luiz-tanurePerformance em-front-end-luiz-tanure
Performance em-front-end-luiz-tanureLuiz Tanure
 
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
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational DatabasesMarcus Vinicius Miguel Pedro
 
Meetup Globo - Big Data | Um sistema de recomendação a partir de um grande gr...
Meetup Globo - Big Data | Um sistema de recomendação a partir de um grande gr...Meetup Globo - Big Data | Um sistema de recomendação a partir de um grande gr...
Meetup Globo - Big Data | Um sistema de recomendação a partir de um grande gr...tecnologiaredeglobo
 

Semelhante a Dicas para melhorar o desempenho do Drupal (20)

Performance Codificando Night Week 2016
Performance Codificando Night Week 2016Performance Codificando Night Week 2016
Performance Codificando Night Week 2016
 
Rest Teoria E Pratica
Rest Teoria E PraticaRest Teoria E Pratica
Rest Teoria E Pratica
 
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
 
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...
 
Tirando leite de pedra
Tirando leite de pedraTirando leite de pedra
Tirando leite de pedra
 
Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???Meu Plone Site está lento. O que fazer???
Meu Plone Site está lento. O que fazer???
 
Estratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços onlineEstratégias de escablabilidade para serviços online
Estratégias de escablabilidade para serviços online
 
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?
 
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
 
Darkmira - Performance em aplicações PHP
Darkmira - Performance em aplicações PHPDarkmira - Performance em aplicações PHP
Darkmira - Performance em aplicações PHP
 
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)
 
Python mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internetPython mudando o modo de desenvolver para a internet
Python mudando o modo de desenvolver para a internet
 
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web  - Marcos Daniel PetryPython mudando o modo de desenvolver para a web  - Marcos Daniel Petry
Python mudando o modo de desenvolver para a web - Marcos Daniel Petry
 
Curso de Performance and Tuning - Linux
Curso de Performance and Tuning - LinuxCurso de Performance and Tuning - Linux
Curso de Performance and Tuning - Linux
 
Entregando imagens na internet
Entregando imagens na internetEntregando imagens na internet
Entregando imagens na internet
 
Performance em-front-end-luiz-tanure
Performance em-front-end-luiz-tanurePerformance em-front-end-luiz-tanure
Performance em-front-end-luiz-tanure
 
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.
 
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases2019 - Natura MeetUp - Journey to Cloud and Relational Databases
2019 - Natura MeetUp - Journey to Cloud and Relational Databases
 
Meetup Globo - Big Data | Um sistema de recomendação a partir de um grande gr...
Meetup Globo - Big Data | Um sistema de recomendação a partir de um grande gr...Meetup Globo - Big Data | Um sistema de recomendação a partir de um grande gr...
Meetup Globo - Big Data | Um sistema de recomendação a partir de um grande gr...
 
HTML 5
HTML 5HTML 5
HTML 5
 

Dicas para melhorar o desempenho do Drupal