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

Back End Performático - CPGoiás 2019

Avatar for Diana Arnos 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.

Avatar for Diana Arnos

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