Como se tornar um viciado em performance em 5 passos

  • 294 views
Uploaded on

É 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

More 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
294
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!