Forklart · tre
Vi publiserer sammenligninger mot andres programvare, så metoden må kunne etterprøves. Her er hele den: maskinene, innholdet, innstillingene hver klient får, og reglene som avgjør om en kjøring teller som et resultat eller blir kastet.
Riggen
Hver klient i en sammenligning kjører på én maskin, mot de samme leverandørene, på det samme innholdet, innenfor den samme omgangen. Ingenting føres videre fra en tidligere dag.
Regelen som avgjør alt
Dette er det aller viktigste på denne siden. Hver omgang avsluttes med å finne den største fila klienten produserte, hvor som helst i utdataene, og hashe den mot en kjent korrekt kopi. Størrelse og MD5, i hver eneste omgang, ikke på en stikkprøve.
Vi gjør det fordi en klients egen melding om suksess ikke er pålitelig bevis. Vi har målt en klient som meldte done på en jobb der utdatamappen var tom. Vi har målt en annen som meldte Completed etter å ha levert rå arkivbind den aldri pakket ut. Et mye brukt reparasjonsverktøy avslutter med feilkode etter en vellykket reparasjon. Ingen av de klientene løy; statustekster betyr ganske enkelt ulike ting for ulike forfattere, og en måling som stoler på dem, måler ordvalg framfor atferd.
Målstreken er derfor den samme for alle: innholdet finnes, i riktig størrelse, med riktig hash. Stopper en klient før det, får den ingen tid, og hele kolonnen blir merket framfor stilltiende utelatt. En treg klient som blir ferdig, gjør det bedre enn en rask som ikke gjør det, og tabellen skal si det.
Følgen er at en manglende fullføring er et resultat, ikke en feil fra vår side. Når vi publiserer en, beskriver vi sluttilstanden i vanlige ord, inkludert alt som tyder på at den er særegen for akkurat den jobben framfor generell, og vi sier hva klienten gjorde i stedet for å bli ferdig.
Rekkefølge og gjentakelse
Leverandørenes gjennomstrømning varierer fra minutt til minutt, iblant med en faktor to eller tre. To målinger tatt på ulike tidspunkt måler delvis været.
Klientene kjører derfor rett etter hverandre og om hverandre, og rekkefølgen snus mellom gjentakelsene, slik at ingen klient alltid er den som går først ut på en varm eller kald linje. Et resultat er mønsteret over gjentakelsene, ikke den beste kjøringen. Når spredningen er stor, publiserer vi intervallet framfor et gjennomsnitt som ville skjult den, og hvis vi ikke vet hvorfor tallene til en klient spriker, sier vi det i stedet for å finne på en årsak.
Sammenligninger på tvers av ulike omganger unngås der det går an. Krever en påstand to tall, kjører vi heller begge om igjen i én omgang enn å trekke den ene dagens tall fra den andres, fordi riggens tilstand, leverandørforholdene og klientversjonene alle driver. Når vi sammenligner to av våre egne bygg, kjører begge i samme omgang, vekselvis, på det samme innholdet.
De uglamorøse kontrollene
De fleste finnes fordi en taus feil en gang ga et friskt utseende, publiserbart og galt tall. Hver av dem kjører nå automatisk og stanser omgangen framfor å advare.
Der en klient trenger bestemte innstillinger for å yte godt, får den dem, og omgangen sier hvilke. Eksempler: forespørselskø slått på der en klient leveres med den av, duplikatsjekk slått av når den samme jobben lastes ned gjentatte ganger, og utpakkingshjelpere hentet fra klientens egen pakke framfor en systemkopi. Målet er at hver klient måles på sitt beste framfor på standardverdiene sine, siden standardverdier er en annen diskusjon enn evne.
Hva vi ikke vil gjøre