Comparador de Benchmarks: Média, Desvio e Variação

Compare benchmarks online: cole os tempos de cada versão e veja média, mediana, desvio padrão, variação e quanto uma é mais lenta. Exporta Markdown e CSV.

Comparador de benchmarks online

Cole as medições de cada versão, algoritmo ou máquina em uma “suíte” e compare: a ferramenta calcula as estatísticas de cada uma, ordena da melhor para a pior e mostra a diferença relativa. No fim, copie a tabela pronta em Markdown (para o README ou o pull request) ou em CSV.

8 medições · média 12,7 ms · desvio padrão 0,2268

8 medições · média 9,362 ms · desvio padrão 0,2326

Separe as medições por espaço, quebra de linha ou ";". A vírgula é decimal (12,5) e o ponto sozinho também (12.5); "1.234" é lido como 1,234. Não inclua a unidade nos valores.

Resultado (da menor média para a maior)

#SuítenMédia (ms)MedianaMín.Máx.Desvio padrãoCVIC 95% da médiavs. melhor
1Com cache89,3629,39,19,80,23262,5%9,168 a 9,557melhor
2Versão atual812,712,6512,413,10,22681,8%12,51 a 12,891,36× mais lento (+35,6%)

A comparação usa a média. Uma diferença pequena entre médias só é confiável se for maior que a variação das medições: confira o desvio padrão e o intervalo de confiança antes de concluir. Esta ferramenta não faz teste de hipótese.

Tabela em Markdown
CSV (separado por ponto e vírgula)

Como usar

  1. Dê um nome a cada suíte (“Versão atual”, “Com cache”, “Node 22”…).
  2. Cole as medições separadas por espaço, quebra de linha ou ;. A vírgula é decimal (12,5), e o ponto sozinho também (12.5), como as ferramentas de benchmark costumam imprimir.
  3. Informe a unidade (ms, s, ops/s…) e marque Maior é melhor se os números forem taxas, como operações por segundo ou fps.
  4. Leia a tabela e copie o resultado em Markdown ou CSV.

Os dados ficam salvos só no seu navegador (localStorage); nada é enviado a servidor.

O que cada coluna significa

ColunaO que é
nquantidade de medições da suíte
Médiasoma das medições dividida por n; é o valor usado na ordenação
Medianavalor do meio com as medições em ordem; quase não é afetada por picos isolados
Mín. / Máx.a menor e a maior medição
Desvio padrãodispersão das medições em torno da média, na versão amostral (divisor n − 1)
CVcoeficiente de variação: desvio padrão ÷ média, em porcentagem
IC 95% da médiaintervalo de confiança de 95% para a média, calculado com a distribuição t de Student
vs. melhorquantas vezes pior que a primeira colocada e a diferença percentual da média

Exemplo conferido

Com as medições 12,4 12,9 12,6 13,1 12,5 12,8 12,7 12,6 (ms) em uma suíte e 9,3 9,1 9,6 9,2 9,4 9,8 9,3 9,2 em outra:

SuíteMédiaDesvio padrãoCVvs. melhor
Com cache9,36250,23262,5%melhor
Versão atual12,70,22681,8%1,36× mais lento (+35,6%)

O fator vem de 12,7 ÷ 9,3625 = 1,356, e a porcentagem, de (12,7 − 9,3625) ÷ 9,3625.

”1,36× mais lento” e “+35,6%” são a mesma coisa?

São duas formas de dizer a mesma diferença. O fator divide a média pior pela melhor; a porcentagem mostra quanto a média mudou em relação à melhor. Com Maior é melhor, os sinais se invertem: uma suíte com 100 ops/s contra 135 ops/s da melhor aparece como “1,35× mais lento (−25,9%)”, porque faz 25,9% menos operações por segundo.

Média menor nem sempre é mais rápido

Tempos de execução variam de uma rodada para outra: outros processos, cache frio, coletor de lixo, ajuste de frequência da CPU. Por isso a diferença entre duas médias só quer dizer alguma coisa quando é maior que essa variação.

A ferramenta ajuda a enxergar isso, sem substituir um teste estatístico:

  • Poucas medições: com menos de 5 valores, a média e o desvio padrão mudam muito a cada execução. A ferramenta avisa, e com uma única medição não há desvio padrão.
  • CV alto: acima de 10% (uma referência prática, não um limite formal), as medições estão instáveis. Vale fechar outros programas, repetir mais vezes e olhar a mediana.
  • Intervalos sobrepostos: se o intervalo de confiança de 95% de uma suíte se sobrepõe ao da melhor, a diferença pode ser só ruído. O contrário não é garantia: intervalos separados são um bom indício, não uma prova.

O intervalo de confiança é calculado como média ± t × desvio padrão ÷ √n, com t tirado da tabela de Student para n − 1 graus de liberdade (por exemplo, 2,365 para 8 medições). Ele supõe medições independentes e de distribuição aproximadamente normal, o que nem sempre vale: tempos de execução costumam ter uma cauda de valores altos.

Boas práticas para medir

  • Descarte as primeiras execuções (aquecimento de JIT e de cache) antes de anotar os valores.
  • Meça as alternativas na mesma máquina e nas mesmas condições, de preferência alternando entre elas.
  • Faça pelo menos 10 repetições; mais, se o CV estiver alto.
  • Prefira ferramentas que já repetem a medição, como o hyperfine na linha de comando ou a biblioteca de benchmark da sua linguagem, e cole aqui os tempos de cada rodada.

Limitações

  • Não há teste de hipótese (teste t, Mann-Whitney) nem valor-p: a ferramenta descreve os dados e sinaliza quando a comparação é frágil.
  • A ordenação usa a média. Se houver picos isolados, compare também as medianas.
  • O ponto sem vírgula é sempre decimal: 1.234 é lido como 1,234, não como 1234. Para milhares, escreva 1234 ou 1.234,0.
  • Limites: 20 suítes e 10 000 medições por suíte.

Perguntas frequentes

Por que desvio padrão amostral e não populacional?

Porque as medições são uma amostra de todas as execuções possíveis do programa. Nesse caso divide-se por n − 1, o que corrige a tendência de subestimar a dispersão. Com muitas medições, a diferença entre os dois é mínima.

Quantas medições preciso fazer?

Não há número mágico. Abaixo de 5 a ferramenta avisa que é pouco; de 10 a 30 costuma bastar quando o CV é baixo. Se os intervalos de confiança ainda se sobrepõem e a diferença importa para você, meça mais.

Média ou mediana: qual usar em benchmark?

A média reflete o custo total (inclusive as execuções lentas); a mediana mostra o caso típico e ignora picos. Se as duas contam histórias diferentes, há valores extremos nas suas medições, e vale investigar de onde vêm.

Como colar a tabela no GitHub?

Copie o bloco Markdown e cole direto no README, na issue ou no pull request: o GitHub transforma em tabela. Marque Ponto decimal na saída se o texto for em inglês.

O CSV abre no Excel?

Sim. Com vírgula decimal, o separador é ponto e vírgula, que é o padrão do Excel em português. Com ponto decimal, o separador é a vírgula.

Ferramentas relacionadas