Stickybit.← CadernoEnglishMedição · decidir com incerteza · 30 set 2026 ·
Medição

Quem decidiu foi o sorteio.

Para dizer se a versão nova de um programa ficou mais rápida, as ferramentas de medição sorteiam: refazem a conta muitas vezes, escolhendo ao acaso entre as medições que já têm, para saber o tamanho da dúvida. O sorteio tem uma semente fixa, então o resultado se repete e parece firme. Trocamos a semente 200 vezes: 3,6% dos vereditos decididos mudavam de lado.

Espécime · 48 comparações entre a versão nova e a antiga
mais rápidamais lentaigualindecidívelveredito diferente do publicado

semente: 12345 · sorteios feitos: 0

–decididos no publicado
–decididos que já trocaram
–indecidíveis que já trocaram
–publicados em minoria

Simulação para mostrar o mecanismo, não os nossos dados (eles vêm mais abaixo). Cada comparação tem 12 execuções de cada versão. Cada barra é a faixa em que a diferença provavelmente está, calculada por sorteio. As linhas tracejadas são o limite de ação: 5% mais rápida ou mais lenta. Os dados nunca mudam; só a semente do sorteio.

Antes da medição

Quatro palavras para esta página.

Limite de ação

O tamanho de diferença a partir do qual alguém muda o que faz. Aqui, 5%. Precisa ser declarado antes de ver o resultado.

Sorteio

Refazer a conta muitas vezes escolhendo ao acaso entre as medições que já existem, para ver quanto o resultado balança. O nome técnico é bootstrap.

Semente

O número que dá a partida no sorteio. Mesma semente, mesmo sorteio, mesmo resultado. Parece firmeza; é só repetição.

Fatia de moeda

A parte dos vereditos que muda quando só a semente muda. Esses não foram decididos pela medição, e sim pelo acaso.

De onde vinha o problema

Comparar médias inventa vencedores.

Medimos a troca do coletor de lixo do Go por uma versão nova: 198 comparações entre programas e métricas, numa mesma máquina. Antes de olhar o resultado, fizemos o teste que quase ninguém faz: comparar o programa com ele mesmo. A resposta certa é "não mudou nada", sempre.

A regra mais usada nas esteiras de teste, "a média nova passou 5% da antiga?", declarou vencedor em 33 das 198 comparações, 16,7%, entre um programa e ele mesmo. É o barulho normal da máquina virando notícia.

A regra que usamos em vez dela olha a faixa em que a diferença provavelmente está e compara essa faixa com o limite. Se a faixa inteira passou do limite, decide. Se ficou inteira dentro, decide que é igual. Se atravessa a linha, diz indecidível. No mesmo teste, ela inventou zero vencedores.

VENCEDORES INVENTADOS · 198 PARES IGUAIS Média contra o limite33 Teste de significância2 Faixa contra o limite0 e o envelope de mínimo e máximo, também 0
O mesmo programa contra ele mesmo, limite de 5%. Medição nossa: Apple M2, Go 1.26.5.
A pergunta seguinte

E a faixa, de onde vem?

A faixa é calculada por sorteio. Pegam-se as 12 execuções de cada versão, sorteiam-se 12 com repetição, calcula-se a diferença, e repete-se isso centenas de vezes. As diferenças sorteadas mostram quanto o resultado balança. A faixa é o trecho do meio delas.

Como todo sorteio no computador, esse começa de uma semente. A nossa ferramenta usava sempre a mesma, 12345. É prática comum e tem um bom motivo: rodar de novo dá o mesmo número, e ninguém fica confuso.

Mas repetir o mesmo sorteio não é o mesmo que o sorteio não importar. Nas comparações em que a ponta da faixa encosta no limite, uma semente põe a ponta de um lado da linha, outra semente põe do outro. O veredito vira. Os dados são os mesmos; só mudou a moeda.

LIMITE 5% −5% semente 1igual semente 2indecidível semente 3igual semente 4indecidível semente 5igual mesmos dados, cinco sorteios: a ponta direita dança em volta da linha
Esquema. Uma comparação cuja diferença real fica perto de 1% mais lenta, com a faixa se esticando até quase 5%. Qual das sementes foi a publicada decide o que vai para o relatório.
O que medimos

200 sementes, e 3,6% dos decididos viraram.

Pegamos as 198 comparações já publicadas e refizemos só o sorteio, com 200 sementes diferentes. Nenhum dado novo, nenhuma execução nova. Antes de rodar, registramos a previsão: entre os vereditos decididos, a fatia de moeda fica acima de zero e abaixo de 5%. Pequena o bastante para não derrubar nada, grande o bastante para existir.

Veredito publicadoComparaçõesMudaram com alguma sementeFatia de moeda
Decidido (mais rápida, mais lenta ou igual)11043,6%
Indecidível8844,5%
Todas19884,0%

A previsão se confirmou: 3,6% está dentro da faixa registrada antes. Medição nossa, agosto de 2026 (a auditoria das sementes): 198 pares de programa e métrica do coletor de lixo do Go, Apple M2, Go 1.26.5, cada um recalculado com 200 sementes.

Também refizemos com as 200 sementes o número mais citado desse estudo: das comparações em que um teste estatístico diz "existe diferença", 81,6% não sustentam decisão contra o limite de 5%. Ele ficou entre 78,9% e 84,2%, e caiu exatamente em 81,6% em 170 das 200 sementes. O número sobrevive. Mas agora que a variação está medida, citar só o dígito central seria escolher a versão mais bonita. A forma honesta é "81,6% (78,9% a 84,2% trocando o sorteio)".

E um caso merece nome. Numa comparação de leitura de requisições HTTP, contando ciclos do coletor, o veredito publicado foi indecidível. Com as 200 sementes, 52% dizem "igual". É o único caso em que o publicado é o lado minoritário: foi literalmente cara ou coroa, e a moeda caiu do lado que foi impresso. Não muda conclusão nenhuma, porque os dois vereditos dizem "não dá para agir". Mas é o exemplo limpo do fenômeno.

Não é o método, é o lugar

A moeda cai onde a decisão importa.

Fizemos a mesma auditoria em mais duas ferramentas nossas, e cada uma pediu um teste diferente, porque em cada uma o que balança a fronteira é outra coisa. Numa é a semente. Noutra, a margem de erro que o fabricante declara na especificação. Noutra, quais trechos de dado ficaram separados para calibrar.

O resultado variou de 0,18% a 10,5%, e o que explica a diferença não é a ferramenta: é o quanto os casos moram perto do limite. As antenas estavam, no meio, a 7 dB da linha; quase nada vira. Os benchmarks se amontoam perto do limite de ação, porque é justamente por isso que alguém quis compará-los.

A consequência é desconfortável. A fatia de moeda é maior exatamente onde a decisão é difícil, porque é ali que os casos se acumulam. Um veredito que nunca encosta na fronteira não estava decidindo nada que precisasse de medição. No espécime lá em cima, é a diferença entre as alternativas a e b.

QUANTO VIRA TROCANDO SÓ O QUE NÃO É DADO Antenas 5Go que balança: a margem de erro da especificação 0,18% Benchmarks do Goo que balança: a semente do sorteio 3,6% Atestado de sensoro que balança: quais trechos calibram 10,5%
Fatia de moeda em três ferramentas nossas. Nas antenas, a varredura era sintética. No atestado de sensor, os 10,5% aparecem só no ajuste em que os dois lados da conta diferem 2%; em todos os outros ajustes, deu zero.
O conserto, e a armadilha dele

Exigir folga funciona. Escolher a folga depois, não.

O conserto óbvio é exigir folga: só decidir se o resultado passou da linha com sobra, e chamar de indecidível tudo o que fica perto. No atestado de sensor, exigir o dobro zerou a zona de moeda, numa ferramenta que tinha sido construída antes dessa regra existir. É um bom sinal de que a regra não foi feita sob medida para um caso.

A armadilha é escolher o tamanho da folga olhando a tabela. Uma folga de 1,5 vez não mudou nada; a de 2 vezes zerou. Pegar o 2 porque ele deu o resultado bonito é o mesmo erro com outro nome: um limite escolhido depois de ver o veredito. Testamos três jeitos de chegar ao valor. Pela variação do próprio instrumento, deu 1,4. Procurando onde a moeda some, deu 2,0. O terceiro não conseguiu apontar valor nenhum. A folga precisa existir; o valor certo dela ainda é uma pergunta aberta.

O que fazer

Quatro regras para um veredito que aguenta ser refeito.

  1. Pergunte o que, além do dado, move a linha

    A semente do sorteio, a margem de erro de uma especificação, quais amostras ficaram de fora. Cada ferramenta tem o seu. Se ninguém sabe dizer qual é, ninguém mediu.

  2. Sorteie de novo antes de publicar

    Troque só o que não é dado e veja quais vereditos viram. Custa minutos de computador, sem nenhuma medição nova.

  3. Cite o número com a faixa

    "81,6%" e "81,6% (78,9% a 84,2%)" dizem coisas diferentes. O segundo conta quanto do número é medição e quanto é sorteio.

  4. Declare o limite e a folga antes

    O limite de ação e a folga exigida entram no relatório antes do resultado. Escolhidos depois, eles são só outro jeito de chegar à resposta que se queria.

O que ainda não sabemos

Onde isso pode estar errado.

Uma máquina, um par de versões

Os 3,6% vêm de um Apple M2, uma versão do Go e uma troca de coletor. O mecanismo é geral; o tamanho da fatia depende de onde os casos moram, e isso muda de estudo para estudo.

200 sementes também são uma amostra

Uma comparação que vira em uma semente a cada mil pode não ter aparecido. A fatia medida é um piso, não a conta exata.

As antenas eram de mentira

Os 0,18% das antenas foram medidos numa varredura sintética, gerada pela própria ferramenta. Descrevem o método, não uma antena instalada.

O valor da folga está em aberto

Sabemos que exigir folga funciona e que escolhê-la pelo resultado é trapaça. Ainda não sabemos derivar o valor certo de fora, em qualquer ferramenta.

← Caderno de pesquisa · Telemetria certificada · stickybit.com.br

Fontes