Erklärt · drei

Wie wir testen, vollständig

Wir veröffentlichen Vergleiche mit der Software anderer Leute, also muss die Methode überprüfbar sein. Hier ist sie ganz: die Maschinen, der Inhalt, die Einstellungen, die jeder Client bekommt, und die Regeln, die entscheiden, ob ein Lauf als Ergebnis zählt oder verworfen wird.

Der Prüfstand

Gleiche Maschine, gleiche Leitung, gleicher Inhalt

Jeder Client in einem Vergleich läuft auf einer Maschine, gegen dieselben Provider, auf demselben Inhalt, innerhalb derselben Runde. Nichts wird von einem früheren Tag übernommen.

Die Regel, die alles entscheidet

Ein Client wird an der Datei gemessen, nicht an seiner eigenen Statusmeldung

Das ist das Wichtigste auf dieser Seite. Jeder Durchgang endet damit, die größte vom Client erzeugte Datei irgendwo in seiner Ausgabe zu suchen und sie gegen eine bekannt gute Kopie zu hashen. Größe und MD5, bei jedem Durchgang, nicht stichprobenartig.

Wir tun das, weil der Erfolgsbericht eines Clients kein verlässlicher Beleg ist. Wir haben einen Client gemessen, der done meldete bei einem Auftrag, dessen Ausgabeverzeichnis leer war. Wir haben einen anderen gemessen, der Completed meldete, nachdem er rohe Archivbände geliefert hatte, die er nie entpackt hatte. Ein weit verbreitetes Reparaturwerkzeug beendet sich nach erfolgreicher Reparatur mit einem Fehlercode. Keiner dieser Clients hat gelogen; Statustexte bedeuten bei verschiedenen Autoren schlicht Verschiedenes, und ein Benchmark, der ihnen vertraut, misst Wortwahl statt Verhalten.

Die Ziellinie ist also für alle dieselbe: die Nutzdaten liegen vor, in der richtigen Größe, mit dem richtigen Hash. Hält ein Client vorher an, bekommt er keine Zeit, und die ganze Spalte wird gekennzeichnet statt stillschweigend weggelassen. Ein langsamer Client, der fertig wird, ist besser als ein schneller, der es nicht wird, und die Tabelle soll das sagen.

Die Folge daraus: ein Nichtankommen ist ein Ergebnis, kein Fehler unsererseits. Wenn wir eines veröffentlichen, beschreiben wir den Endzustand mit einfachen Worten, einschließlich allem, was darauf hindeutet, dass es für diesen Auftrag spezifisch statt allgemein ist, und wir sagen, was der Client stattdessen getan hat.

Reihenfolge und Wiederholung

Warum Durchgänge abwechseln, und warum Einzelläufe nicht veröffentlicht werden

Der Durchsatz der Provider schwankt von Minute zu Minute, manchmal um den Faktor zwei oder drei. Zwei Messungen zu verschiedenen Zeiten messen zum Teil das Wetter.

Clients laufen deshalb unmittelbar nacheinander und verschränkt, und die Reihenfolge kehrt sich zwischen den Wiederholungen um, damit kein Client immer derjenige ist, der als Erster auf eine warme oder kalte Leitung geht. Ein Ergebnis ist das Muster über die Wiederholungen hinweg, nicht der beste Lauf. Ist die Streuung groß, veröffentlichen wir den Bereich statt eines Mittelwerts, der sie verbergen würde, und wenn wir nicht wissen, warum die Zahlen eines Clients streuen, sagen wir das, statt eine Ursache zu erfinden.

Vergleiche über verschiedene Runden hinweg vermeiden wir, wo immer es geht. Braucht eine Aussage zwei Zahlen, lassen wir lieber beide in einer Runde neu antreten, als die Zahl des einen Tages von der des anderen abzuziehen, denn Prüfstandszustand, Providerbedingungen und Clientversionen driften allesamt. Wenn wir zwei eigene Builds vergleichen, laufen beide in derselben Runde, abwechselnd, auf demselben Inhalt.

Die unglamourösen Prüfungen

Was vor und während jedem Durchgang läuft

Die meisten gibt es, weil ein stiller Fehler einmal eine gesund aussehende, veröffentlichungsreife, falsche Zahl erzeugt hat. Jede läuft nun automatisch und stoppt die Runde, statt zu warnen.

Wo ein Client bestimmte Einstellungen braucht, um gut zu arbeiten, bekommt er sie, und die Runde nennt welche. Beispiele: Anfrage-Pipelining eingeschaltet, wo ein Client es ausgeschaltet ausliefert, Duplikatprüfung abgeschaltet, wenn derselbe Auftrag wiederholt geladen wird, und Entpackhelfer aus dem eigenen Paket des Clients statt aus einer Systemkopie. Ziel ist, dass jeder Client von seiner besten Seite gemessen wird statt an seinen Voreinstellungen, denn Voreinstellungen sind eine andere Debatte als Leistungsfähigkeit.

Was wir nicht tun werden

Die Grenzen dieser Zahlen