Explicações · três

Como testamos, por inteiro

Publicamos comparações com software de outras pessoas, portanto o método tem de ser conferível. É este, por inteiro: as máquinas, o conteúdo, as definições que cada cliente recebe, e as regras que decidem se uma execução conta como resultado ou vai para o lixo.

A bancada

Mesma máquina, mesma linha, mesmo conteúdo

Cada cliente de uma comparação corre numa só máquina, contra os mesmos fornecedores, sobre o mesmo conteúdo, dentro da mesma ronda. Nada é aproveitado de um dia anterior.

A regra que decide tudo

Um cliente é julgado pelo ficheiro, não pela sua própria mensagem de estado

Esta é a coisa mais importante desta página. Cada volta termina procurando o maior ficheiro que o cliente produziu, em qualquer ponto da sua saída, e calculando o seu resumo criptográfico contra uma cópia de referência. Tamanho e MD5, em todas as voltas, não por amostragem.

Fazemo-lo porque o relatório de sucesso de um cliente não é prova fiável. Medimos um cliente a comunicar done numa tarefa cuja pasta de saída estava vazia. Medimos outro a comunicar Completed tendo entregado volumes de arquivo em bruto que nunca desempacotou. Uma ferramenta de reparação muito usada termina com um código de erro após uma reparação bem-sucedida. Nenhum desses clientes estava a mentir; as cadeias de estado significam simplesmente coisas diferentes para autores diferentes, e um benchmark que confia nelas mede vocabulário em vez de comportamento.

Portanto a meta é a mesma para todos: o conteúdo existe, com o tamanho certo e o resumo certo. Se um cliente parar antes disso, não recebe tempo, e a coluna inteira é assinalada em vez de omitida em silêncio. Um cliente lento que termina está a sair-se melhor do que um rápido que não termina, e a tabela deve dizê-lo.

O corolário é que uma não chegada é um resultado, não um erro nosso. Quando publicamos uma, descrevemos o estado final em termos simples, incluindo tudo o que sugira que é específica daquela tarefa e não geral, e dizemos o que o cliente fez em vez de terminar.

Ordem e repetição

Porque as voltas se alternam, e porque não se publicam execuções únicas

O débito dos fornecedores varia de minuto a minuto, por vezes num fator de dois ou três. Duas medições feitas em momentos diferentes medem em parte o tempo que fazia.

Por isso os clientes correm seguidos e intercalados, e a ordem inverte-se entre repetições, para que nenhum cliente seja sempre o que entra primeiro numa linha quente ou fria. Um resultado é o padrão ao longo das repetições, não a melhor corrida. Quando a dispersão é grande, publicamos o intervalo em vez de uma média que a esconderia, e se não soubermos porque os números de um cliente estão dispersos, dizemo-lo em vez de inventar uma causa.

Evitam-se comparações entre rondas diferentes sempre que possível. Se uma afirmação exige dois números, preferimos voltar a correr ambos numa só ronda a subtrair o valor de um dia ao de outro, porque o estado da bancada, as condições dos fornecedores e as versões dos clientes derivam todos. Quando comparamos duas compilações nossas, ambas correm na mesma ronda, alternadamente, sobre o mesmo conteúdo.

As verificações pouco vistosas

O que corre antes e durante cada volta

A maioria existe porque uma falha silenciosa produziu um dia um número de aspeto saudável, publicável e errado. Cada uma corre agora automaticamente e interrompe a ronda em vez de avisar.

Onde um cliente precisa de definições específicas para render bem, recebe-as, e a ronda diz quais. Exemplos: encadeamento de pedidos ligado onde um cliente o traz desligado, verificação de duplicados desligada quando a mesma tarefa é descarregada repetidamente, e auxiliares de desempacotamento tirados do próprio pacote do cliente em vez de uma cópia do sistema. O objetivo é que cada cliente seja medido no seu melhor e não nas suas predefinições, já que as predefinições são uma discussão separada da capacidade.

O que não faremos

Os limites destes números