Explicații · trei

Cum testăm, în întregime

Publicăm comparații cu programele altor oameni, așa că metoda trebuie să poată fi verificată. Iat-o în întregime: mașinile, conținutul, setările pe care le primește fiecare client, și regulile care hotărăsc dacă o rulare contează ca rezultat sau este aruncată.

Standul

Aceeași mașină, aceeași linie, același conținut

Fiecare client dintr-o comparație rulează pe o singură mașină, către aceiași furnizori, pe același conținut, în aceeași rundă. Nimic nu este preluat dintr-o zi anterioară.

Regula care hotărăște totul

Un client este judecat după fișier, nu după propriul mesaj de stare

Acesta este cel mai important lucru de pe pagină. Fiecare rundă se încheie găsind cel mai mare fișier produs de client, oriunde în ieșirea lui, și calculându-i amprenta față de o copie de referință. Dimensiune și MD5, la fiecare rundă, nu pe un eșantion.

Facem asta fiindcă raportul de succes al unui client nu este o dovadă de încredere. Am măsurat un client raportând done la o sarcină al cărei director de ieșire era gol. Am măsurat altul raportând Completed după ce livrase volume de arhivă brute pe care nu le dezarhivase niciodată. Un instrument de reparare foarte folosit iese cu un cod de eroare după o reparare reușită. Niciunul dintre acei clienți nu mințea; șirurile de stare pur și simplu înseamnă lucruri diferite pentru autori diferiți, iar un benchmark care se încrede în ele măsoară vocabular, nu comportament.

Așadar linia de sosire este aceeași pentru toți: conținutul există, la dimensiunea corectă, cu amprenta corectă. Dacă un client se oprește înainte, nu primește timp, iar întreaga coloană este marcată în loc să fie omisă în tăcere. Un client lent care termină se descurcă mai bine decât unul rapid care nu termină, iar tabelul trebuie să spună asta.

Corolarul este că o neterminare este un rezultat, nu o eroare de partea noastră. Când publicăm una, descriem starea finală în termeni simpli, inclusiv orice sugerează că este specifică acelei sarcini și nu generală, și spunem ce a făcut clientul în loc să termine.

Ordine și repetare

De ce rundele alternează, și de ce rulările unice nu se publică

Debitul furnizorilor variază de la minut la minut, uneori cu un factor de doi sau trei. Două măsurători luate la momente diferite măsoară în parte vremea.

Așadar clienții rulează unul după altul și întrepătruns, iar ordinea se inversează între repetări, astfel încât niciun client să nu fie mereu cel care intră primul pe o linie caldă sau rece. Un rezultat este tiparul de-a lungul repetărilor, nu cea mai bună rulare. Când împrăștierea este mare, publicăm intervalul în locul unei medii care ar ascunde-o, iar dacă nu știm de ce cifrele unui client sunt împrăștiate, o spunem în loc să inventăm o cauză.

Comparațiile între runde diferite se evită oriunde este posibil. Dacă o afirmație cere două cifre, preferăm să le realergăm pe amândouă într-o singură rundă decât să scădem cifra unei zile din a alteia, fiindcă starea standului, condițiile furnizorilor și versiunile clienților derivă toate. Când comparăm două versiuni proprii, ambele rulează în aceeași rundă, alternând, pe același conținut.

Verificările nespectaculoase

Ce rulează înainte și în timpul fiecărei runde

Cele mai multe există fiindcă o defecțiune tăcută a produs cândva un număr cu aspect sănătos, publicabil și greșit. Fiecare rulează acum automat și oprește runda în loc să avertizeze.

Acolo unde un client are nevoie de setări anume pentru a se descurca bine, le primește, iar runda spune care. Exemple: înlănțuirea cererilor activată acolo unde un client vine cu ea oprită, verificarea duplicatelor dezactivată când aceeași sarcină este descărcată în mod repetat, și ajutoarele de dezarhivare luate din pachetul propriu al clientului în locul unei copii de sistem. Scopul este ca fiecare client să fie măsurat la potențialul lui maxim, nu la setările implicite, întrucât setările implicite sunt o discuție separată de capacitate.

Ce nu vom face

Limitele acestor cifre