• Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
434
On Slideshare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Drupal PerformanceDicas e técnicas para levar seu Drupal às nuvensDrupalcamp São Paulo 2013by Paulino Michelazzo
  • 2. Por quê WPO?web performance optimization
  • 3. 43%57%3 sec> 3 sec57% dosvisitantes de sitesde viagens saemapós 3 segundos25% mobile
  • 4. 1 segundo é...- 11%pageviews- 7%conversões- 16%satisfação
  • 5. 1.6 bilhões de dólares emvendas anuais
  • 6. 25% de acréscimo em pageviews7 a 12% aumento nas vendas50% de redução de hardware
  • 7. tempo é dinheiro
  • 8. definindoperformance
  • 9. é lento ou está lento?
  • 10. O Drupal é lento?Não!Desenvolvedores ee designers otornam lento
  • 11. 1ª regradefinir se o website é lentoou se ele está lento
  • 12. o que é lento?
  • 13. aquilo que impacta naconversão de usuários
  • 14. 14% 86%backend frontend10.91.6Top 300K
  • 15. 80 a 90% daslesmas estão nofront-endMate-as antes2ª regra
  • 16. 80 ~ 90% no Drupaltema
  • 17. • Arquivos JavaScript• Arquivos CSS• Imagens• Requisições HTTP• DNS Lookup’s
  • 18. 3 arquivosativar1 arquivo
  • 19. JavaScript• Colocá-los no fim do código• Minificar arquivos• Carregar arquivos externosassincronamente• Combinar arquivos
  • 20. Carga assíncronavar script = document.createElement(script),scripts = document.getElementsByTagName(script)[0];script.async = true;script.src = url;scripts.parentNode.insertBefore(script, scripts);
  • 21. 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
  • 22. 8 arquivos3 arquivosativar
  • 23. Apelando...function hook_css_alter(&$css) {// Remove defaults.css file.unset($css[drupal_get_path(module,system)/defaults.css]);}
  • 24. CSS• Colocá-los no início do código• Minificar arquivos• Fugir de @import• Combinar arquivos
  • 25. 98k 25k73kImagens
  • 26. 53k 1.9k51.1k97%Imagens
  • 27. Imagens• JPG• Progressivas• Qualidade• PNG• IndexadasDPI não se usa emmonitor!!!
  • 28. requisições HTTP• Não fazer• Não fazer• Precisa fazer, reduza• (menos css, menos js, menos imagens)
  • 29. o terror da requisição404
  • 30. DNS Lookup’s• Reduza• Reduza• Precisa mesmo? Traga para mais perto• perto = dentro
  • 31. 3ª regra10 e 20%rede e servidordifícil, mas nãoimpossível
  • 32. tempo para 1º byteDNS lookupConexão inicialTempo de espera
  • 33. 10 ~ 20% no Drupal
  • 34. cache• APC - Alternative PHP Cache• cache de código PHP• Memcached• cache banco e código• Varnish• cache não-autenticado
  • 35. boost• Módulo que não depende de terceirospara funcionamento• Alternativa ao Varnish
  • 36. 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
  • 37. cache de blocos• Reduz o tempo de carga de blocos• Maravilhoso em conjunto commemcache
  • 38. Tips & Tricks
  • 39. • realpath_cache_size = 64K (monitore)• query_cache_size = 128M• query_cache_limit = 1M
  • 40. • Database logging (dblog)• Statistics• PHP filterCorram!!!!!
  • 41. Last words• Otimização é trabalhosa• mas o resultado vale a pena• Otimização é experiência• combinar ingredientes e cenários
  • 42. obrigadoPaulino Michelazzoabout.me/pmichelazzo