Testes: benchmarking
O curso trata de medir a performance de código Ruby e Rails com resultados que resistem a uma nova rodada. Começa mostrando por que uma única cronometragem varia entre execuções. Depois aborda aquecimento e regime estável com Benchmark.bmbm, o GC dentro da janela medida e o relato de min, mediana e max. Compara iterações por segundo com tempo decorrido, lista as armadilhas de medir dentro do Rails e explica como calcular o ganho máximo de uma mudança. Termina com orçamentos de performance e asserções de contagem de queries em CI.
O que você vai aprender
- ✓Por que uma cronometragem só não é medição, e de onde vem a variância
- ✓Aquecimento, regime estável e o ensaio do Benchmark.bmbm
- ✓Como reportar min, mediana e max, e tratar faixas sobrepostas como indistinguíveis
- ✓Iterações por segundo contra tempo decorrido, medidos com relógio monotônico
- ✓As cinco armadilhas de benchmark dentro do Rails e como controlá-las
- ✓Orçamentos de performance, teto de otimização e asserções de contagem de queries em CI
Por que um número só não é uma medição
Aqui está um benchmark. Ele aplica upcase em vinte mil strings e cronometra com o relógio que todo mundo pega primeiro.
Ler a aula completa grátis →Currículo
7 aulasPor que um número só não é uma medição
Mostra por que o mesmo código cronometrado varia entre execuções, citando aquecimento, carregamento preguiçoso, GC e ruído da máquina.
Aquecimento e regime estável
Explica como o ensaio do Benchmark.bmbm tira custos únicos, como reconhecer o regime estável e como o GC distorce leituras.
Iterações, variância e honestidade
Trata de reportar min, mediana e max, ler faixas sobrepostas como indistinguíveis e escolher iterações suficientes.
Iterações por segundo contra tempo decorrido
Compara iterações por segundo com tempo decorrido, monta um harness com relógio monotônico e confere quais gems de benchmark carregam.
Benchmarking dentro do Rails
Apresenta cinco armadilhas do Rails (processo frio, query cache, recarga de código, log e memoização) e a correção de cada uma.
Qual fração dá para ganhar, no máximo
Mostra como a fatia do tempo total que um trecho de código ocupa limita qualquer otimização dele.
Da medição a um padrão do time
Transforma medições em orçamentos de performance, com contagens em testes, durações em dashboards e limites de CI acima do ruído do runner.