Diese Präsentation wurde erfolgreich gemeldet.
Wir verwenden Ihre LinkedIn Profilangaben und Informationen zu Ihren Aktivitäten, um Anzeigen zu personalisieren und Ihnen relevantere Inhalte anzuzeigen. Sie können Ihre Anzeigeneinstellungen jederzeit ändern.

Backend performático além do "coloca mais máquina lá" - Diana Arnos

143 Aufrufe

Veröffentlicht am

Trabalhar a performance no backend vai muito além de simplesmente ""colocar mais máquinas atrás do loadbalancer""
. Vamos apontar alguns gargalos comuns que podem ser tratados ou evitados desde o começo do desenvolvimento, já que não dependem da tecnologia utilizada.

Veröffentlicht in: Software
  • Als Erste(r) kommentieren

  • Gehören Sie zu den Ersten, denen das gefällt!

Backend performático além do "coloca mais máquina lá" - Diana Arnos

  1. 1. Backend Performático Além do “coloca mais máquina lá”
  2. 2. @dianaarnos Dev, Sec, Music, Kung Fu. Tech Lead @ MGov Evangelista @ PHPSP Evangelista @ PHPWomenBR
  3. 3. - CARA, A RESPOSTA TÁ MEIO LENTA...
  4. 4. L O A D B A L A N C E R
  5. 5. - AUMENTA A CAPACIDADE LÁ
  6. 6. MAS É SEMPRE SÓ ISSO?
  7. 7. COMO VOCÊ FAZ AS QUERIES?
  8. 8. - MUITOS JOINS? - UM ÚNICO GRANDE INSERT UM VÁRIOS PEQUENOS INSERTS? - QUANTAS REQUISIÇÕES AO BANCO POR MINUTO?
  9. 9. PREPARED STATEMENT
  10. 10. SEMPRE
  11. 11. CACHE
  12. 12. - BUSCAS FREQUENTES NO BANCO
  13. 13. - BUSCAS FREQUENTES NO BANCO - OBJETOS
  14. 14. - BUSCAS FREQUENTES NO BANCO - OBJETOS - RESPONSES INTEIRAS
  15. 15. - MEMÓRIA
  16. 16. - MEMÓRIA - SERVIÇO (EX. REDIS)
  17. 17. - MEMÓRIA - SERVIÇO (EX. REDIS) - DISCO
  18. 18. CUIDADO
  19. 19. O “O QUÊ” É TÃO IMPORTANTE QUANTO O “COMO”
  20. 20. COMO VAI O SEU CÓDIGO? SUA LÓGICA? SEUS ALGORITMOS?
  21. 21. BIG O
  22. 22. FIBONACCI
  23. 23. FIBONACCI public function getFibonacci (int $number): int { if ($number <= 1) { return $number; } else { return getFibonacci($number - 1) + getFibonacci($number - 2); } }
  24. 24. FIBONACCI Quantas linhas de código vão rodar para dado input n? T(n)? T(0) = 2 T(1) = 2 T(2) = 3 + T(1) + T(0) T(3) = 3 + T(2) + T(1) T(4) = 3 + T(3) + T(2) ... Observando a progressão, temos: Dado n = 0 ou n =1, T(n) = 2
  25. 25. FIBONACCI
  26. 26. FIBONACCI Com o processamento de 1GHz, levaríamos aproximadamente 56 mil anos para calcular T(100)
  27. 27. FIBONACCI
  28. 28. FIBONACCI 0, 1, 1, 2, 3, 5, 8, 13, 21... 0 + 1 = 1 0, 1, 1 1 + 1 = 2 0, 1, 1, 2 1 + 2 = 3 0, 1, 1, 2, 3 2 + 3 = 5 0, 1, 1, 2, 3, 5 3 + 5 = 8 0, 1, 1, 2, 3, 5, 8 ...
  29. 29. FIBONACCI public function getFibonacci (int $number): int { $fibonacci[0] = 0; $fibonacci[1] = 1; for ($i = 2; $i <= $number; $i++) { $fibonacci[$i] = $fibonacci[$i-1] + $fibonacci[$i-2]; } return $fibonacci[$number]; }
  30. 30. FIBONACCI Calculando quantas linhas de código rodam para cada iteração, considerando que as 3 primeiras linhas e a última (return) vão rodar sempre: T(2) = 4 + 2 = 6 T(3) = 4 + 2 + 2 = 8 T(4) = 4 + 2 + 2 + 2 = 10 ... T(n) = 2n + 2
  31. 31. MUITO MAIS RÁPIDO
  32. 32. E LEMBREM-SE:
  33. 33. OBRIGADA! Fale comigo: @dianaarnos (twitter, instagram)

×