Performance: notação O
O curso trata a notação O como ferramenta de decisão para código Rails. Ele mostra o que a notação afirma e o que ela descarta: constantes, termos de ordem menor e a máquina. Depois percorre cinco curvas de crescimento com pares concretos, como uma query por registro contra uma query só. As lições seguintes tratam do quadrático acidental de include? num array, da complexidade de espaço e de caso médio, amortizado e pior caso. O fechamento cobre o ponto onde duas curvas se cruzam e quando a análise vale a pena.
O que você vai aprender
- ✓O que a notação O afirma e o que ela deixa de fora
- ✓As cinco curvas de crescimento comuns em código Rails
- ✓Como achar e corrigir include? dentro de um loop com Set ou index_by
- ✓Complexidade de espaço e o custo de memória de objetos Active Record
- ✓A diferença entre caso médio, amortizado e pior caso
- ✓Como calcular onde duas curvas se cruzam e de que lado estão os seus dados
Para que serve a notação O, e o que ela esconde
Um comentário de code review diz "isso é O(n ao quadrado), reescreve". O loop percorre os cursos em que uma pessoa está matriculada. O catálogo inteiro tem algumas centenas de cursos, e quem estuda costuma estar matriculado num punhado deles. A reescrita economizaria microssegundos e custaria uma…
Ler a aula completa grátis →Currículo
7 aulasPara que serve a notação O, e o que ela esconde
Explica o que a notação O afirma, o que ela descarta e por que a primeira pergunta é o que é n.
As curvas que uma pessoa Rails encontra
Percorre cinco curvas comuns com pares como query por registro, busca por índice, onde ordenar e lotes.
O quadrático acidental: `include?` dentro de um loop
Mostra como include? num array dentro de um loop vira quadrático, mede o custo e corrige com Set.
Complexidade de espaço: a curva que te acorda de madrugada
Trata o pico de memória como curva separada, com o custo de objetos Active Record, pluck e lookups sem limite.
Amortizado, caso médio e pior caso
Separa caso médio, amortizado e pior caso, com exemplos de Array#push, colisões em Hash, hash flooding e quicksort.
A questão do limiar: onde as curvas se cruzam
Calcula onde duas curvas se cruzam e aplica isso à varredura de 50 níveis e ao job do leaderboard.
Quando a análise vale a pena
Apresenta um filtro de quatro condições para decidir quais loops merecem análise e recapitula as lições anteriores.