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

Back End Performático - CPGoiás 2019

Diana Arnos
September 06, 2019

Back End Performático - CPGoiás 2019

Apresentada durante o PHPWeekend 2019 (https://brasil.campus-party.org/campus-party-goias/)

Trabalhar a performance no backend vai muito além de simplesmente "subir mais máquinas".
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

September 06, 2019
Tweet

More Decks by Diana Arnos

Other Decks in Programming

Transcript

  1. @dianaarnos Dev, Sec, Music, Kung Fu. Dev / Arquiteta @

    Senhasegura Evangelista @ PHPSP Evangelista @ PHPWomenBR
  2. $query = "SELECT * FROM usuarios WHERE " . "username

    = :usuario OR username = administrador"; $stmt->bindValue(":usuario", $username); $stmt->bindValue(":administrador", "admin");
  3. $query = "SELECT * FROM usuarios WHERE " . "username

    = :usuario OR username = administrador"; $stmt->bindValue(":usuario", $username); $stmt->bindValue(":administrador", "admin");
  4. $query = "SELECT * FROM usuarios WHERE " . "username

    = :usuario OR username = administrador"; $stmt->bindValue(":usuario", $username); $stmt->bindValue(":administrador", "admin");
  5. $query = "SELECT * FROM usuarios WHERE " . "username

    = :usuario OR username = administrador"; $stmt->bindValue(":usuario", $username); $stmt->bindValue(":administrador", "admin");
  6. FIBONACCI public function getFibonacci (int $number): int { if ($number

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