Förklarat · tre
Vi publicerar jämförelser mot andras programvara, så metoden måste gå att granska. Här är hela den: maskinerna, innehållet, inställningarna varje klient får, och reglerna som avgör om en körning räknas som ett resultat eller kastas.
Riggen
Varje klient i en jämförelse körs på en maskin, mot samma leverantörer, på samma innehåll, inom samma omgång. Inget förs över från en tidigare dag.
Regeln som avgör allt
Detta är det enskilt viktigaste på den här sidan. Varje omgång avslutas med att den största fil klienten producerat letas upp, var som helst i dess utdata, och hashas mot en känd korrekt kopia. Storlek och MD5, vid varje omgång, inte på ett stickprov.
Vi gör det för att en klients egen rapport om framgång inte är tillförlitligt belägg. Vi har mätt en klient som rapporterade done på ett jobb vars utdatamapp var tom. Vi har mätt en annan som rapporterade Completed efter att ha levererat råa arkivvolymer den aldrig packat upp. Ett vitt spritt reparationsverktyg avslutas med felkod efter en lyckad reparation. Ingen av dessa klienter ljög; statussträngar betyder helt enkelt olika saker för olika upphovsmän, och en mätning som litar på dem mäter ordval snarare än beteende.
Mållinjen är alltså densamma för alla: innehållet finns, i rätt storlek, med rätt hash. Stannar en klient före det får den ingen tid, och hela kolumnen markeras i stället för att tyst utelämnas. En långsam klient som blir klar gör bättre ifrån sig än en snabb som inte gör det, och tabellen ska säga det.
Följdsatsen är att ett uteblivet resultat är ett resultat, inte ett fel från vår sida. När vi publicerar ett beskriver vi sluttillståndet i klartext, inklusive allt som tyder på att det är specifikt för det jobbet snarare än allmänt, och vi säger vad klienten gjorde i stället för att bli klar.
Ordning och upprepning
Leverantörernas genomströmning varierar minut för minut, ibland med en faktor två eller tre. Två mätningar tagna vid olika tillfällen mäter delvis vädret.
Klienter körs därför tätt efter varandra och omlott, och ordningen kastas om mellan upprepningarna, så att ingen klient alltid är den som går först ut på en varm eller kall lina. Ett resultat är mönstret över upprepningarna, inte den bästa körningen. När spridningen är stor publicerar vi intervallet i stället för ett medelvärde som skulle dölja den, och om vi inte vet varför en klients siffror spretar säger vi det i stället för att hitta på en orsak.
Jämförelser mellan olika omgångar undviks där det går. Kräver ett påstående två siffror kör vi hellre om båda i en och samma omgång än drar den ena dagens siffra från den andras, eftersom riggens tillstånd, leverantörsförhållandena och klientversionerna alla driver. När vi jämför två av våra egna byggen körs båda i samma omgång, växelvis, på samma innehåll.
De oglamorösa kontrollerna
De flesta finns för att ett tyst fel en gång gav ett friskt utseende, publicerbart och felaktigt tal. Var och en körs nu automatiskt och stoppar omgången i stället för att varna.
Där en klient behöver särskilda inställningar för att prestera väl får den dem, och omgången anger vilka. Exempel: begäranspipelining påslaget där en klient levereras med det avstängt, dubblettkontroll avstängd när samma jobb laddas ned upprepade gånger, och uppackningshjälpmedel tagna ur klientens eget paket snarare än en systemkopia. Målet är att varje klient mäts när den är som bäst snarare än vid sina standardvärden, eftersom standardvärden är en annan diskussion än förmåga.
Vad vi inte kommer att göra