Your SlideShare is downloading. ×
  • Like
  • Save
Como se tornar um viciado em performance em 5 passos
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Como se tornar um viciado em performance em 5 passos

  • 304 views
Published

É muito importante focarmos na performance do seu site, para isso apresento 5 passos do que pode ser feito para melhorar a performance da sua aplicação web, deixando você e seu usuário mais felizes

É muito importante focarmos na performance do seu site, para isso apresento 5 passos do que pode ser feito para melhorar a performance da sua aplicação web, deixando você e seu usuário mais felizes

Published in Technology
  • 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
304
On SlideShare
0
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
0
Comments
0
Likes
11

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. Como se tornar umviciado em performanceem 5 passosPedro Chaves - 3º PHPMG Talks
  • 2. O primeiro motivoNinguém elogia um siterápido, mas todos reclamamde um site lento.
  • 3. Tempo de atraso Reação do usuário0 - 100ms Instantânea100 - 300ms Atraso perceptível300 - 1000ms Computador trabalhando...1s+ Começa a perder o foco10s+ Eu volto depois...
  • 4. 100ms por página 1% de receita
  • 5. Tempo de disparo de onLoad15% tempo de permanência
  • 6. O quarto motivoSeu site nunca serárápido o suficientesozinho.
  • 7. O quinto motivoMelhorar aperformance é uma viade mão dupla.
  • 8. Onde você busca seus dados?#1
  • 9. O MySQL é o lugar maislento para buscar seus dados.
  • 10. Seus novos melhoresamigosQue tal salvar os dados em lugares alternativos?
  • 11. Seus novos melhoresamigosRedis salva em memória RAM ou em disco
  • 12. Se dados não mudamtoda hora, não precisa buscá-los toda hora
  • 13. Rotina toda Se não existe busca madrugada do arquivo Salva um arquivo JSON no disco e um Site busca do registro no Memcached MemcachedCrontab é seu melhor amigo!
  • 14. Seus novos melhoresamigosMemcached + arquivo em disco gerado por rotina
  • 15. Como sua aplicação processa os dados?#2
  • 16. A qualidade do seu códigointerfere na velocidade da sua aplicação.
  • 17. The KISS principleNem sempre o código maisbonito é o mais rápido oueficiente.
  • 18. The KISS principle
  • 19. KEEP ITSIMPLESTUPID
  • 20. APC - Alternative PHP CacheDicas rápidas - Habilite APC
  • 21. __autoload não! (confirmado pelo próprio Rasmus)Dicas rápidas - Habilite APC
  • 22. Dicas rápidas - Passe parâmetros por referência
  • 23. Dicas rápidas - Utilize funções nativas
  • 24. Dicas rápidas - Junte técnicas
  • 25. The KISS principleAs vezes é necessário abrirmão de conceitos deengenharia de software emtroca de performance.
  • 26. SELECT COUNT(*), a.nome AS nome_artistaFROM artistas AS aINNER JOIN musicas AS m ON m.id_artista = a.idWHERE m.id_artista = ?GROUP BY m.id_artistaDicas rápidas de performance
  • 27. SELECT nome, num_musicasFROM artistasWHERE id_artista = ?Dicas rápidas de performance
  • 28. Quando sua aplicação processa os dados?#3
  • 29. Você realmente precisaexecutar seu código toda hora?
  • 30. Que tal colocar uma camada decache no retorno de todas asrequisições?Checkpoint #3
  • 31. Varnish, seu melhor amigo
  • 32. O protocolo HTTP está aí para serutilizado da maneira correta! Porque nosso navegador também faz cache por nós :DProtocolo HTTP to the rescue!
  • 33. Last-Modified + If-Modified-Since O servidor só envia o conteúdo da página se If-Modified-Since não for enviado ou for menor do que Last-Modified. 304 Not Modified
  • 34. Expires Não busca a página no servidor se o tempo do cache não tiver expiradoExpires: Sun, 17-Jan-2038 19:14:07 GMT
  • 35. ETag + If-None-Match "Versão" daquela requisição. Pode conter qualquer conteúdo, escolhido por você. ETag: JSV1
  • 36. Quanto menos melhor!#4
  • 37. A requisição maisrápida é aquela que não existe.
  • 38. Checklist● Só um arquivo CSS ✓
  • 39. A primeira impressão é a que fica.
  • 40. Checklist● Só um arquivo CSS ✓● JavaScript no rodapé ✓
  • 41. Checklist● Só um arquivo CSS ✓● JavaScript no rodapé ✓● Poucos arquivos JavaScript ✓
  • 42. Google Closure YUI Compressor Compiler Minificar JavaScript e CSS! UglifyJS CSSMin
  • 43. Checklist● Só um arquivo CSS ✓● JavaScript no rodapé ✓● Poucos arquivos JavaScript ✓● Minificar JS / CSS ✓
  • 44. $LAB.js head.js Dois JavaScript não carregam juntos. A não ser que você queira...RequireJS YepNope
  • 45. Checklist● Só um arquivo CSS ✓● JavaScript no rodapé ✓● Poucos arquivos JavaScript ✓● Minificar JS / CSS ✓● JavaScript assíncrono ✓
  • 46. Cookies são inúteis para arquivos estáticos.
  • 47. Checklist● Só um arquivo CSS ✓● JavaScript no rodapé ✓● Poucos arquivos JavaScript ✓● Minificar JS / CSS ✓● JavaScript assíncrono ✓● Content Delivery Network ✓
  • 48. gzip! até 80% do tamanho da requisição :D
  • 49. Checklist● Só um arquivo CSS ✓● JavaScript no rodapé ✓● Poucos arquivos JavaScript ✓● Minificar JS / CSS ✓● JavaScript assíncrono ✓● Content Delivery Network ✓● gzip ✓
  • 50. Otimize TODAS as imagens! jpegoptim faz isso por você ;)
  • 51. base64 === -1 hit
  • 52. Checklist● Só um arquivo CSS ✓● JavaScript no rodapé ✓● Poucos arquivos JavaScript ✓● Minificar JS / CSS ✓● JavaScript assíncrono ✓● Content Delivery Network ✓● gzip ✓● Imagens otimizadas ✓
  • 53. Checklist● Só um arquivo CSS ✓● JavaScript no rodapé ✓● Poucos arquivos JavaScript ✓● Minificar JS / CSS ✓● JavaScript assíncrono ✓● Content Delivery Network ✓● gzip ✓● Imagens otimizadas ✓● CSS Sprites ✓
  • 54. Dicas finais#5
  • 55. "Existem duas coisasdifíceis em TI: dar nome às coisas e invalidar cache" Alguém muito sábio
  • 56. Cache incremental vs.Refazer todo o cache vs. Excluir o cache
  • 57. PHP não possui umparadigma só. Se aproveite disso.
  • 58. Teste sua performance!PageSpeed e YSlow podem te ajudar.
  • 59. Obrigado!