Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Backend performático: além do "coloca mais máqu...

Backend performático: além do "coloca mais máquinas lá"

Apresentado no iMasters InterCon 2018 - https://eventos.imasters.com.br/intercon/

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.

Avatar for Diana Arnos

Diana Arnos

October 05, 2018
Tweet

More Decks by Diana Arnos

Other Decks in Programming

Transcript

  1. @dianaarnos Dev, Sec, Music, Kung Fu. Tech Lead @ MGov

    Evangelista @ PHPSP Evangelista @ PHPWomenBR
  2. - MUITOS JOINS? - UM ÚNICO GRANDE INSERT OU VÁRIOS

    PEQUENOS INSERTS? - QUANTAS REQUISIÇÕES AO BANCO POR MINUTO?
  3. FIBONACCI public function getFibonacci (int $number): int { if ($number

    <= 1) { return $number; } else { return getFibonacci($number - 1) + getFibonacci($number - 2); } }
  4. 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
  5. 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 ...
  6. 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]; }
  7. 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