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.

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