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íte | n | Média (ms) | Mediana | Mín. | Máx. | Desvio padrão | CV | IC 95% da média | vs. melhor |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | Com cache | 8 | 9,362 | 9,3 | 9,1 | 9,8 | 0,2326 | 2,5% | 9,168 a 9,557 | melhor |
| 2 | Versão atual | 8 | 12,7 | 12,65 | 12,4 | 13,1 | 0,2268 | 1,8% | 12,51 a 12,89 | 1,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.
Como usar
- Dê um nome a cada suíte (“Versão atual”, “Com cache”, “Node 22”…).
- 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. - Informe a unidade (ms, s, ops/s…) e marque Maior é melhor se os números forem taxas, como operações por segundo ou fps.
- 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
| Coluna | O que é |
|---|---|
| n | quantidade de medições da suíte |
| Média | soma das medições dividida por n; é o valor usado na ordenação |
| Mediana | valor 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ão | dispersão das medições em torno da média, na versão amostral (divisor n − 1) |
| CV | coeficiente de variação: desvio padrão ÷ média, em porcentagem |
| IC 95% da média | intervalo de confiança de 95% para a média, calculado com a distribuição t de Student |
| vs. melhor | quantas 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íte | Média | Desvio padrão | CV | vs. melhor |
|---|---|---|---|---|
| Com cache | 9,3625 | 0,2326 | 2,5% | melhor |
| Versão atual | 12,7 | 0,2268 | 1,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, escreva1234ou1.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
- Calculadora de Desvio Padrão — populacional e amostral, com a variância
- Calculadora de Média Aritmética
- Calculadora de Mediana
- Coeficiente de Variação — interprete a dispersão relativa
- Calculadora de Percentil e Quartil — p95 e p99 das suas medições
- Conversor CSV ↔ JSON — transforme a tabela exportada