Benchmarks

Fünf Clients, identische Hardware und Provider, Läufe im Wechsel gefahren, damit sich Provider-Schwankungen aufheben. Die Kennzahl ist Zeit bis zur benutzbaren Datei - heruntergeladen, geprüft, entpackt - gemessen zusammen mit Platte, freiem Speicherplatz und Arbeitsspeicher, die der Job kostet. Jede Tabelle nennt die Versionen, gegen die sie antrat, und den Tag, an dem sie lief. Inklusive der Etappen, die wir nicht gewinnen.

Auf dieser Seite

Die Kurzfassung · gemessen am 23. August 2026 auf der Codelinie, die als nzbfast 1.2.2 auslief

Kein gemessener Client ist bei Prozessor, Speicher und Platte zusammen günstiger

Die neuesten Runden auf dieser Seite liefen am 23. und 24. August 2026 - die neueste davon auf dem v1.2.2-Release-Build selbst - gegen die aktuellen Builds von vier anderen Clients, auf identischer Hardware, identischen Leitungen und Providern: zwei Job-Formen von 6,5 bis 87 GB und Leitungsraten von 250 Mbit bis 10 GbE. Über diese Runden hinweg war kein Client bei Prozessor, Speicher und Platte zusammen günstiger als nzbfast: jeder kostet mehr auf mindestens zwei der drei Achsen, das Meiste, was irgendeiner auf einer einzelnen Achse sparte, waren etwa 2 Prozent - ein statistisches Unentschieden, innerhalb der eigenen Lauf-zu-Lauf-Streuung dieses Clients - und bei der Platte bewegte jeder von ihnen mindestens die doppelte Bytemenge für ein byte-identisches Ergebnis. Im Auslieferungszustand hielt nzbfast außerdem bei jedem gemessenen Client, auf jedem Testfall, den geringsten Speicherverbrauch - um das 2,0- bis 4,5-Fache gegenüber dem nächsten Konkurrenten.

Welcher Typ sind Sie?

Ein NAS, ein Mini-PC oder ein kleiner Heimserver. nzbfast benötigte bei einem Job 143 MB Speicher, wo der nächste Konkurrent 531 MB und der genügsamste unter den schwersten 1,6 GB belegte, kommt mit rund 50 MB freiem Speicherplatz übrig aus, wo andere Clients etwa das Doppelte des Downloads an freiem Platz brauchen, und die Low-Memory-Leiter brachte einen 87-GB-Job bei Werkseinstellungen mit 286 MB RAM auf die Platte. Und weil dabei jedes Byte etwa einmal über Ihre Platte läuft, kann ein NAS-Laufwerk mit einer Leitungsgeschwindigkeit mithalten, die es unter einem Zwei-Durchgang-Client überfordern würde. Siehe die Kostentabellen, freien Speicherplatz und das Platten-Tempolimit.
Gigabit-Glasfaser. Der Job ist fertig, wenn der Download-Balken sich füllt, nicht erst Minuten später: Prüfung und Entpacken laufen während des Downloads mit, Ihre Verbindung steht bei einer ganzen Warteschlange nie still, und Ihre Platte sieht nur etwa halb so viele Bytes. Siehe die Kostentabellen und die Runde zum beschädigten Post.
Eine Multi-Gig- oder 10-GbE-Leitung. Die Engine hält aus einem einzigen Prozess heraus etwa 8,7 Gbps, mit Prüfung und Entpacken parallel zum Download, und die Platten-Arithmetik greift zuerst: ein Client, der jedes Byte zwei- oder dreimal über die Platte bewegt, braucht eine Platte, die zwei- oder dreimal schneller ist als Ihre Leitung, bevor die Leitung zum Limit wird. Siehe die 87-GB-Runde und das Platten-Tempolimit.
Eine langsamere oder geteilte Leitung (250-500 Mbit). Gemessen am 24. August 2026 bei beiden Raten: nzbfast war als Erster fertig, und kein anderer Client schlug es bei irgendeiner von uns gemessenen Ressource - bei 500 Mbit lief es mit etwa 96 % der Leitungsrate durch Prüfung und Entpacken, 14,7 % vor dem nächsten Konkurrenten. Eine bescheidene Leitung ist dort, wo Verschwendung am stärksten sichtbar wird, und wo der leichteste Client am meisten hilft. Siehe die Stufen mit langsamerer Leitung.

Die meisten Downloader schreiben Ihren Download mindestens zweimal auf die Platte: einmal beim Herunterladen und noch einmal beim Entpacken. nzbfast erledigt den ganzen Job in einem Durchgang, schreibt also etwa halb so viele Bytes pro Job, hält weniger im Speicher, während es arbeitet, und braucht weniger Prozessorsekunden pro GB. Das bedeutet weniger Last auf der Maschine, während Sie sie nutzen, und halb so viele Schreibvorgänge pro Job auf Ihren Laufwerken, für dieselben byte-identischen Dateien - und weil jedes Byte die Platte nur etwa einmal durchläuft, muss Ihr Laufwerk mit Ihrer Leitung nur einmal mithalten.

nzbfast gewinnt nicht jede Tabelle auf dieser Seite, und die verlorenen stehen unter den Etappen, die wir nicht gewinnen - einschließlich einer aus diesem selben Runde. Was sich über jede von uns gemessene Runde hinweg hielt, ist die Gesamtrechnung.

Erst die Methodik

Der Aufbau

Die Runde vom 23. August 2026

Was ein Job kostet: jeder Client aktuell, eine Nacht, eine Maschine

Sechs Arme auf einer 20-Kern-Apple-Silicon-Maschine auf einer 1-Gbit-Leitung: nzbfast mit Werkseinstellungen, dasselbe Binary mit abgeschaltetem Verbindungsregler, und die aktuellen Builds der vier anderen Clients. Fünf Provider, überall TLS, drei Wiederholungen je Client und Testfall mit rotierter Reihenfolge innerhalb jeder Runde, und die Ausgabe jeder Etappe byte-für-byte geprüft: 36 von 36 Etappen lieferten exakt die erwartete Nutzlast. Bei 1 Gbit gibt die Leitung das Tempo vor, und die Fertigstellungszeiten laufen konstruktionsbedingt zusammen, die Zeitspalte zeigt also nur diese Konvergenz; die Ressourcenspalten sind es, was die Runde eigentlich messen soll.

Ein Regler zählt, und er wird genannt statt versteckt: Die Werkseinstellungen enthalten jetzt einen leitungsbewussten Verbindungsregler, und auf dieser Leitung hielt er 25 Verbindungen, während jeder andere Client seine konfigurierten Hunderte fuhr. Die Zeile „Regler aus" stellt dieselben 360 Sockets ein, die unsere älteren Runden nutzten, sodass beide Vergleiche verfügbar bleiben: das Produkt, wie ein Leser es bekommt, und das historische Experiment.

6,5-GB-Release mit Namen, Entpacken im PfadZeit bis zur benutzbaren DateiSpitzenspeicher (RSS)CPU-ZeitGeräte-E/A (GiB)Leitung (GB)
nzbfast, Werkseinstellung (25 Verb.)58 s143 MB35,7 s6,26,5
nzbfast, Regler aus (360)60 s583 MB38,0 s6,16,6
NZBGet 26.3-testing61 s801 MB40,1 s12,56,5
SABnzbd 5.1.163 s1.588 MB69,5 s13,86,5
rustnzb 1.4.567 s628 MB61,9 s13,47,2
Weaver 0.7.8110 s531 MB34,9 s¹12,56,5
34-GB-Release, verschleiertZeit bis zur benutzbaren DateiSpitzenspeicher (RSS)CPU-ZeitGeräte-E/A (GiB)Leitung (GB)
nzbfast, Werkseinstellung (25 Verb.)302 s191 MB194,0 s32,534,4
nzbfast, Regler aus (360)302 s465 MB205,4 s32,934,4
NZBGet 26.3-testing306 s900 MB221,3 s68,134,4
SABnzbd 5.1.1308 s1.607 MB356,5 s72,534,4
rustnzb 1.4.5343 s445 MB332,6 s69,837,8
Weaver 0.7.8511 s1.076 MB373,8 s98,034,4

Gemessen am 23. August 2026 gegen SABnzbd 5.1.1, NZBGet 26.3-testing, rustnzb 1.4.5 und Weaver 0.7.8, Mediane aus drei Läufen, jede Etappe byte-geprüft, fünf Provider, überall TLS. Die nzbfast-Arme liefen mit einem Build derselben Codelinie von früher am selben Tag, etwa sieben Stunden vor dem v1.2.2-Release-Build, deshalb tragen ihre Zeilen keine Versionsnummer; die Tabellen für 500 Mbit und 87 GB auf dieser Seite sind tatsächlich auf dem Release-Build gelaufen und sagen das. ¹ Weavers CPU-Median beim 6,5-GB-Testfall liegt 2 % unter unserem - 34,9 gegen 35,7 CPU-Sekunden, wobei seine eigenen drei Läufe von 34,1 bis 56,1 s streuten -, wir werten das also als statistisches Unentschieden; es ist die einzige Zelle in beiden Tabellen, die ein Konkurrent hält, und sie wird unter den Etappen, die wir nicht gewinnen wiederholt. Beim 34-GB-Testfall ist unsere CPU-Zeit in dieser Runde die niedrigste überhaupt. Weavers neueres 0.8.3 liefert kein Binary aus; unser eigener Quell-Build davon zeigte ein Prozessormuster, das wir nicht sauber der Version statt dem Build zuschreiben können, also tritt diese Tabelle gegen das hash-geprüfte Release-Asset 0.7.8 an und sagt das auch, statt eine verfälschte Zahl zu veröffentlichen. rustnzb 1.4.5 hat hier jede Etappe abgeschlossen, den verschleierten Testfall eingeschlossen.

Die Leitungsspalte, genau genommen. 6,5 GB beim sauberen Testfall - dieselbe Zahl, die NZBGet und SABnzbd für sich selbst angeben. Der schlimmste uns bekannte Fall ist ein absichtlich umnummerierter verschleierter Post, bei dem das Umsteuern um die verwürfelte Nummerierung einen zusätzlichen Artikel pro Steuerung kostet: gemessen bei 1,10-1,20x des minimalen Plans bei beiden Formen, die wir bauen konnten. rustnzbs Zellen von 7,2 und 37,8 GB sind sein eigener Überschuss, mit einer Warnung in seinem Log bei zwei Etappen.

Was die Speicherspalte bei Werkseinstellungen bedeutet: Der Regler ist der Hauptgrund, warum die ausgelieferte Zeile 143-191 MB hält - weniger Verbindungen bedeutet weniger gleichzeitig in Flug - und ihn abzuschalten (die zweite Zeile) ist die ehrliche Brücke zu jeder älteren 360-Socket-Tabelle auf dieser Seite. Sogar mit 360 Sockets liegen wir gleichauf mit dem sparsamsten Konkurrenten (583 MB gegen rustnzbs 628 beim kleinen Testfall, 465 gegen dessen 445 beim großen); bei Werkseinstellungen bleibt kein Gleichstand mehr übrig.

Langsamere Leitungen · gemessen am 24. August 2026 mit nzbfast 1.2.2

Je langsamer die Leitung, desto weniger trennt die Clients bei der Geschwindigkeit - und desto mehr bei der Rechnung

Bei einer hinreichend langsamen Leitung ist die Fertigstellungszeit jedes Clients nur noch die Leitung selbst, nichts sonst, also verdeckt eine langsame Leitung viele Sünden. Was sie nicht verdecken kann, ist das, was jeder Client verbrennt, um sie zu füllen. Wir haben die 1-Gbit-Anlage auf zwei Raten gedrosselt, wie sie echte Pläne tatsächlich haben, und alle sechs Arme bei jeder gemessen - dieselbe Maschine, dieselben fünf Provider, drei Wiederholungen je Client mit rotierter Reihenfolge, jede Etappe byte-geprüft, 36 von 36 über beide Runden hinweg korrekt. Der nzbfast-Arm bei 500 Mbit ist der v1.2.2-Release-Build selbst.

500-Mbit-Leitung, 6,5-GB-ReleaseZeit bis zur benutzbaren DateiSpitzenspeicher (RSS)CPU-ZeitGeräte-E/A (GiB)
nzbfast 1.2.2, Werkseinstellung109 s142 MB45,4 s6,2
nzbfast 1.2.2, Regler aus115 s592 MB59,0 s6,2
SABnzbd 5.1.1125 s1.665 MB99,2 s14,2
rustnzb 1.4.5131 s626 MB92,6 s14,5
Weaver 0.7.8138 s564 MB48,5 s12,4
NZBGet 26.3-testing145 s¹846 MB64,3 s13,2
250-Mbit-Leitung, dasselbe ReleaseZeit bis zur benutzbaren DateiSpitzenspeicher (RSS)CPU-ZeitGeräte-E/A (GiB)
nzbfast, Werkseinstellung217 s144 MB53,3 s6,2
nzbfast, Regler aus219 s651 MB67,9 s6,2
NZBGet 26.3-testing227 s826 MB78,4 s13,3
SABnzbd 5.1.1230 s1.667 MB162,4 s15,2
Weaver 0.7.8230 s789 MB62,0 s12,9
rustnzb 1.4.5256 s644 MB122,4 s15,4

Lesen Sie die beiden Tabellen als Gefälle. Bei 250 Mbit landet das ganze Feld innerhalb von 18 % auf der Uhr, und wir liegen 4,4 % vor dem nächsten Konkurrenten; bei 500 Mbit öffnet sich der Abstand auf 14,7 %; bei den Gigabit- und 10-GbE-Raten in den Tabellen darüber und darunter öffnet er sich weiter. Geschwindigkeitsunterschiede wachsen mit der Leitung. Die Ressourcenspalten warten nicht auf eine schnelle Leitung: bei jeder gemessenen Rate hielt jeder Konkurrent mindestens das 3,9-Fache an Speicher, verbrauchte mehr Prozessorzeit und bewegte etwa doppelt so viele Plattenbytes für dieselbe byte-identische Datei.

Der Verbindungsregler zahlt sich auf langsamen Leitungen aus, und der eigene Drop-Zähler des Shapers sagt warum. Die Werkseinstellungen hielten 25 Verbindungen, wo jeder Konkurrent Hunderte fuhr; dasselbe Binary mit abgeschaltetem Regler fuhr 360. Weniger Flüsse durch eine feste Warteschlange bedeuten weniger Verlust und weniger erneutes Senden: der Shaper verzeichnete etwa 4.200 Drops je gedeckelter Etappe gegen etwa 155.000 ungedeckelte bei 500 Mbit, und der gedeckelte Arm war schneller, 4,2x leichter beim Speicher und 1,3x leichter bei der CPU als unsere eigene 360-Socket-Haltung. Mehr Verbindungen bedeutet nicht mehr Geschwindigkeit; unterhalb eines Gigabits ist messbar das Gegenteil der Fall.

Gemessen am 24. August 2026, Mediane aus drei Läufen, auf einer 20-Kern-Apple-Silicon-Maschine mit auf jede Rate gedrosselter Leitung (die gedrosselte Rate vor jeder Runde von einer unabhängigen Sonde bestätigt: 248 und 496 Mbit). Der 500-Mbit-nzbfast-Arm ist der v1.2.2-Release-Tag-Build; die 250-Mbit-Runde lief Stunden zuvor auf derselben Codelinie. Bytezahlen auf einer gedrosselten Leitung werden aus dem eigenen Zähler jedes Clients gelesen, nie aus der Netzwerkschnittstelle (der Shaper verwirft und TCP sendet erneut, sodass die Schnittstelle beide Kopien zählt). Wanduhrzeiten sind innerhalb jeder Tabelle vergleichbar, nicht über unterschiedlich gedrosselte Runden hinweg. ¹ NZBGets drei Läufe bei 500 Mbit streuten von 114-158 s bei flachen Ressourcenwerten - eine echte Streuung, daher wird der Median angegeben und die Streuung genannt, statt sie zu verengen.

Die große Datei · gemessen am 24. August 2026 mit nzbfast 1.2.2

Ein 87-GB-Post zu einer benutzbaren 77-GB-Datei, bei 10 GbE

Das andere Ende der Leitungsraten-Geschichte: eine 10-GbE-Maschine, fünf Provider, ein 87-GB-Post, dessen Nutzlast ein einziges 76,6-GB-Video ist, sechs Arme, drei Wiederholungen rotiert, und die Ausgabe jeder Etappe byte-geprüft - 18 von 18 Etappen lieferten die identische Datei, alle sechs Clients einig über deren Prüfsumme. Die nzbfast-Arme sind der v1.2.2-Release-Build.

87-GB-Post, 10 GbEZeit bis zur benutzbaren DateiSpitzenspeicher (RSS)CPU-ZeitGeräte-E/A (GiB)Leitung (GB)
nzbfast 1.2.2 (50 Verbindungen)¹70 s415 MB144 s72,977,2
nzbfast 1.2.2, Verbindungsregler an (25)90 s336 MB130,5 s72,977,4
NZBGet 26.3-testing93 s1.195 MB443 s183,777,2
SABnzbd 5.1.1113 s1.910 MB234 s235,177,2
Weaver 0.7.8645 s1.825 MB631 s435,1²77,3
rustnzb 1.4.5869 s³681 MB2.444 s216,186,9

Die Plattengeschichte auf ihrer bisher größten Skala. Unser Plattenhöchststand während des Jobs liegt bei 70,8 GiB - UNTER der 76,6-GB-Ausgabe, weil der letzte Teil der Nutzlast noch eintrifft, während der Anfang bereits fertig ist - und die gesamte Geräte-E/A beträgt das 1,00-Fache der Nutzlast. Die Konkurrenten bewegen das 2,5- bis 6,0-Fache der Bytes für dieselbe Datei. Und der schnellste Arm hält etwa 8,7 Gbps einschließlich Prüfung und Entpacken im Datenstrom; sobald der Download-Balken sich füllt, ist die Datei fertig.

¹ Jeder Client auf dieser Seite tritt mit seinen dokumentierten Best-Einstellungen an, und auf einer 10-GbE-Leitung sind das bei uns 50 Verbindungen insgesamt - 10 je Server, ein Wert, den jede Kontostufe erreicht - dieselbe Ein-Einstellung-Feinjustierung, die wir jedem Konkurrenten geben (SABnzbd sein Pipelining, NZBGet seinen Artikel-Cache). Fünfzig ist kein Handicap: ein Sechs-Stufen-Sweep auf demselben Testfall fand die Wand identisch von 50 Verbindungen bis hinauf zu den Kontomaxima von 360, während die Prozessorkosten über diesen Bereich hinweg um das 2,3-Fache steigen, für nichts, sodass die Maxima nichts bringen, was diese Tabelle zeigen würde. Die 50-Verbindungen-Zeile wurde dann noch einmal in voller Drei-Wiederholungs-Qualität am selben Tag, auf derselben Maschine, gegen dieselbe Ausgabe-Prüfsumme gemessen: 70 / 70 / 70 s, alle drei byte-geprüft. Die Regler-Zeile steht hier, weil sie die interessantere ist: bei jeder Rate bis hinauf zu einem Gigabit sind ihre 25 Verbindungen ohne Kosten schneller, und selbst hier, wo sie etwa ein Fünftel der Wanduhrzeit kosten, kaufen sie 336 statt 415 MB Speicher und 130 statt 144 CPU-Sekunden. Den Regler automatisch mit der Leitungsrate zu skalieren - sodass das beste Verhalten auch das Standardverhalten ist, am Knick statt am Maximum - ist für die nächste Version vorgesehen. ² Weavers 435 GiB Geräte-E/A für einen 77-GB-Download stammen davon, dass sein verschlüsselter Speicher fast alles erneut liest und erneut schreibt, während der Job wächst - das überlineare Muster, das unsere instrumentierten Julirunden gemessen haben und das auf dem aktuellen Build noch besteht. ³ rustnzb 1.4.5 schließt byte-korrekt ab, und seine Kosten liegen bei Prozessorzeit und Leitung: etwa 2.444 CPU-Sekunden gegen eine Uhrzeit von 869 s über alle drei Wiederholungen hinweg, und 86,9 GB geladen, wo der sparsame Plan bei 77,2 liegt (es lädt den vollständigen Wiederherstellungssatz bedingungslos). Gemessen am 24. August 2026, Mediane aus drei Läufen, alle Builds aktuell; Wiederholung 3 der drei schnellsten Arme lief ~40 Minuten nach dem Rest (eine Freiraum-Sicherung pausierte die Runde; die Verschiebung verschob keinen Median um mehr als die Streuung der Wiederholungen).

Seit dieser Runde ist die Regler-Zeile durch das überholt, was 1.2.3 ausliefert. Gemessen am 26. August 2026 auf demselben Testfall, derselben Maschine und derselben 10-GbE-Leitung, sechs Etappen byte-korrekt gegen die Prüfsumme dieser Tabelle: 71 s bei Werkseinstellung, 322 MB und 139,3 CPU-Sekunden, gegen die 90 s oben. Eine Runde nur mit nzbfast auf einem neueren Build, deshalb steht sie hier statt in der Tabelle: jede Zeile darüber steht wie am 24. August gemessen.

Dieselben 87 GB auf nativem Windows, gegen das kommerzielle Flaggschiff

Der erste kommerzielle Client auf dieser Seite: Newsbin Pro, der am längsten bestehende kostenpflichtige Windows-Client, angetreten gegen unseren offiziellen Windows-Build auf einer nativen Windows-10-GbE-Maschine, deren TLC-Systemlaufwerk 0,99 GB/s an Schreibvorgängen hält - die langsamste Platte in unserer Testflotte, was sie zum ehrlichen Ort macht, um einen bühnengebundenen Client antreten zu lassen. Derselbe 87-GB-Post, drei Wiederholungen im Wechsel, die Ausgabe jeder Etappe gegen dieselbe Prüfsumme wie in der Tabelle oben byte-geprüft: 6 von 6 identisch.

87-GB-Post, Windows, TLC-PlatteZeit bis zur benutzbaren DateiSpitzenspeicher (RSS)CPU-ZeitGeräte-E/A (GiB)Leitung (GB)
nzbfast 1.2.2 (50 Verbindungen)105 s469 MB154 s84,576,7
Newsbin Pro 6.90 (360 Verbindungen)477 s881 MB1.862 s154,176,7

Gemessen am 24. August 2026, Mediane aus drei Läufen, beide Clients aktuell. Newsbin lief mit seinen eigenen konfigurierten Verbindungsmaxima je Server - 360 Sockets gegen unsere 50 -, und seine Zeiten schließen die 90-Sekunden-Beruhigung aus, die unser Testrahmen abwartet, bevor er einen beobachteten Client für fertig erklärt, sodass der Vergleich zweimal zu seinen Gunsten kippt und das Ergebnis trotzdem steht: das 4,5-Fache der Wanduhrzeit, das 12-Fache der CPU-Sekunden und das 1,9-Fache des Speichers für dieselbe Datei. Keine Seite ist hier plattengebunden - der Ein-Durchgang-Arm braucht etwa 0,73 GB/s der 0,99 GB/s des Laufwerks, und Newsbin nutzt im Schnitt ein Drittel davon, während es fast vier Prozessorkerne acht Minuten lang beschäftigt hält - die Lücke liegt also am Client, nicht an der Hardware. Beide Clients luden dieselben Leitungsbytes für die Nutzlast. Newsbin ist eine eingetragene Marke von CMCE, Inc.; der Client wird von DJI Interprises, LLC veröffentlicht.

Die Zählung

Was Usenet tatsächlich postet, und wie viel davon in einem Durchgang läuft

Im August 2026 auf einer deutlich größeren Population neu gewichtet. Die Julizählung unten erfasste zwei Gruppen; der Index dahinter hält inzwischen 13,2 Millionen Releases und 174,7 TB über 114 Gruppen, und die Mischung hat sich verschoben - 7z-Archive wuchsen von unter 2 % der Bytes zu einem großen Anteil. Neu gemessen auf dieser Population, geht etwa 95 % der Bytes vollständiger Releases in einem Durchgang durch (94,3 % bis 96,3 % je nach vier Arten, die Population zu schneiden), und der Faktor, der tatsächlich zählt, ist nicht die Archivform, sondern das Passwort: etwa ein Drittel der Bytes braucht eines, um überhaupt eine Ausgabe zu erzeugen, egal welchen Client Sie fahren. Die Julimomentaufnahme bleibt unten stehen, als die Momentaufnahme, die sie ist.

Für die Julizählung sahen wir uns 890.852 Releases, 1,6 Millionen Dateien und 79,6 TB über die zwei geschäftigsten Film- und TV-Gruppen an, holten dann die Archivheader von tausend echten Posts und lasen sie, um zu bestätigen, was die Dateinamen nur andeuteten. Gezählt nach Bytes statt nach Post, weil eine Million winziger Dateien weniger zählen als eine große.

Das hat verändert, woran wir arbeiten. Es hat wenig Sinn, einen Kompressionspfad zu optimieren, der 1,4 % der Daten trägt, also haben wir die beiden abgestimmt, die den Rest tragen.

Verschlüsselung ist auch nicht gleichmäßig verteilt. Sie skaliert mit der Größe:

Release-GrößeAnteil aller DatenGespeichertVerschlüsselt
1-5 GB29%94%2%
5-20 GB39%97%2%
20-60 GB20%67%33%
über 60 GB12%51%49%

Gewöhnliche Downloads sind fast immer einfache gespeicherte Archive. Bei den großen ist es eine Münze, die zwischen gespeichert und verschlüsselt entscheidet. Die gespeicherte Form ist das, wogegen jede aktuelle Tabelle auf dieser Seite antritt; die Plattengeschichte der verschlüsselten Form wird weiter unten in ihrem eigenen Abschnitt gemessen.

Der beschädigte Post · erneut angetreten am 24. August 2026, jeder Build aktuell

Wenn der Post Löcher hat: 6,5 GB mit 60, 20 und 5 toten Artikeln

Artikel laufen ab, Server verwerfen sie still, Uploads landen unvollständig - und Schaden ist dort, wo der Abstand zwischen Clients am größten ist, deshalb bekommt er seine eigene Runde auf dem neuesten Build jedes Clients, nzbfast v1.2.2 eingeschlossen: 10-GbE-Maschine, fünf Provider, 100 Verbindungen je Client, dasselbe 6,5-GB-Release auf drei Schadstufen vergiftet, drei Wiederholungen je Arm mit alternierender Reihenfolge, jede Etappe gegen die saubere Datei byte-geprüft. 63 von 65 Etappen kamen byte-identisch zurück; die beiden, die es nicht taten, werden unten genannt, weil sie Ergebnisse sind.

Zeit bis zu einer geprüften, benutzbaren Datei (Mittel aus 3)60 tote Artikel20 tote5 tote
nzbfast 1.2.213,0 s10,0 s8,7 s
nzbfast 1.2.2, Frühreparatur abgeschaltet29,3 s19,0 s12,3 s
NZBGet 26.3-testing33,0 s23,7 s23,0 s
SABnzbd 5.1.148,0 s¹28,0 s24,3 s
rustnzb 1.4.5107,3 s²51,3 s47,0 s
Weaver 0.7.8nicht fertig geworden³nicht fertig geworden³194,0 s

Warum der beschädigte Post hier schnell ist. Fehlt ein Artikel, fragt ein Client normalerweise den nächsten Server, dann den nächsten, bis jeder Server ihn abgelehnt hat - ein serieller Durchlauf, dessen Ablehnungen jeweils von zehn Millisekunden bis zu ein paar Sekunden dauern, während der Download bei null steht. nzbfast hört auf zu fragen: sobald die bereits vorhandenen Wiederherstellungsdaten das noch Fehlende abdecken, repariert es sofort, statt den Durchlauf zu Ende zu führen. Das ist die zweite Zeile - dasselbe Binary mit diesem abgeschalteten Verhalten ist je nach Schaden 1,4x bis 2,3x langsamer -, und die Runde bestätigte, dass der Mechanismus bei jeder aktivierten Etappe griff und nie bei einer deaktivierten. Gegen den nächsten Konkurrenten beträgt der Abstand 2,4x bis 2,7x, ohne Überlappung in einem der neun Wiederholungspaare.

Bei der Platte ist der Abstand am größten, und das liegt nicht am Reparaturtrick. Jeder abschließende Arm erzeugte dieselbe 6,48-GB-Datei; unserer bewegte dafür 6,2-6,8 GB Platten-E/A, NZBGet 12,7-18,5 GB, SABnzbd 13,9-20,3 GB und rustnzb 12,8-13,1 GB. Das ist die Ein-Durchgang-Pipeline - die abgeschaltete Zeile bewegt dieselben 6,2 GB -, sie gilt also gleichermaßen für beschädigte wie unbeschädigte Posts.

¹ SABnzbds drei Läufe beim schwersten Schaden liefen 43, 41 und 60 s - eine echte Streuung bei identischen Eingaben, daher wird der Mittelwert mit der genannten Spanne angegeben. ² rustnzb 1.4.5 lieferte jede Etappe byte-korrekt, und seine Kosten liegen bei der Prozessorzeit statt bei der Zuverlässigkeit: etwa 1.620 CPU-Sekunden gegen eine Uhrzeit von 107 s beim schwersten Schaden - rund fünfzehn Kerne die ganze Etappe über beschäftigt -, wo dieselbe reparierte Ausgabe uns etwa 50 CPU-Sekunden kostet. ³ Weaver bewegte 1,5 GB und 4,9 GB der 6,5 innerhalb unseres 20-Minuten-Limits bei den beiden schwereren Schadstufen - dasselbe Nicht-fertig-Werden in allen drei Runden, die es je bestritten hat, an drei verschiedenen Abenden; das Limit ist unseres, das Nicht-fertig-Werden ist das Ergebnis. Bei 5 toten Artikeln schloss es alle drei Male korrekt ab. Seine Prozessorkosten dort sind eine eigene Geschichte: etwa 2.325 CPU-Sekunden für die 194-s-Etappe, gegen unsere 20.

Gemessen am 24. August 2026, alle Builds aktuell: nzbfast v1.2.2 (der Release-Tag selbst), NZBGet 26.3-testing (Build vom 20. August), SABnzbd 5.1.1, rustnzb 1.4.5, Weaver 0.7.8. Ein Kontinuitätsarm trat mit dem nzbfast-Build der Vornacht innerhalb derselben Runde an und landete bei jedem Testfall innerhalb einer Sekunde von v1.2.2, sodass hier nichts auf einer glücklichen Nacht reitet; und die Konkurrenzkonfigurationen unterscheiden sich von denen der vorigen Runde nur im Anwendungspfad, Schlüssel für Schlüssel vor der Runde geprüft.

Die ehrliche Spalte

Die Etappen, die wir nicht gewinnen

Dieser Abschnitt existiert für die Etappen, die ein Konkurrent gewinnt, und er wird bei jeder Runde neu gemessen statt kuratiert: was wir verlieren, steht hier, benannt, neben der Tabelle, die es zeigt. Beim aktuellen Build, dieser Runde, ist er leer an Geschwindigkeitsverlusten - was man eher mit Vorsicht als mit Zufriedenheit betrachten sollte, deshalb stehen die verbliebenen Kompromisse stattdessen unten.

Was nicht verschwunden ist, ist der Kompromiss hinter diesen Zahlen, das sagt dieser Abschnitt also jetzt: wir geben mehr Speicher aus als die eigenständigen Werkzeuge, und der schnelle Pfad für schwere Reparaturen gibt am meisten aus. Unser Extraktor und unser Reparaturwerkzeug sind darauf gebaut, einen laufenden Download zu begleiten, statt einmalig von einer Kommandozeile aus zu laufen, und das kostet residenten Speicher; das Detail steht neben den Komponententabellen. Wenn Ihre Vorgabe der kleinstmögliche Fußabdruck für einen Einmal-Job ist, gewinnen die dedizierten Werkzeuge diese Spalte, und wir werden nicht so tun, als wäre das anders.

Und die Runde vom 23. August 2026 fügt einen Eintrag hinzu, den wir lieber hier aufführen als in einer Fußnote verstecken: beim 6,5-GB-Testfall liegt Weavers Prozessor-Median 2 % unter unserem - 34,9 gegen 35,7 CPU-Sekunden, wobei seine eigenen drei Läufe von 34,1 bis 56,1 s streuten -, wir nennen das also ein statistisches Unentschieden, und es steht in der Kostentabelle markiert als die eine Zelle, die wir nicht halten. Beim 34-GB-Testfall in derselben Runde ist unsere CPU-Zeit die niedrigste überhaupt.

Warum überhaupt einen Verlust zeigen? Weil die Siege nur neben ihm glaubwürdig sind. Jede Zahl auf dieser Seite stammt aus denselben verschränkten Läufen, und eine Etappe, die wir verlieren, bleibt veröffentlicht, bis ein erneuter Lauf sie ersetzt.

Speicher knapphalten · gemessen am 24. August 2026 mit nzbfast 1.2.2

Die Low-Memory-Leiter: 87 GB in ~0,3 GB RAM

Derselbe 87-GB-Job wie in der Runde oben, erneut gefahren mit festen Speicherbudgets von 2 GB, 1 GB und 256 MB - was die Auto-Bemessung auf einer 8-GB-Maschine, einer 4-GB-Maschine und einem 2-GB-NAS wählen würde. Jede Etappe erzeugte die identische byte-geprüfte Datei, und die Speicherspalte folgte dem Budget, nie dem Job:

87-GB-Job, 10 GbEAuto2-GB-Budget1-GB-Budget256-MB-Budget
Zeit bis zur benutzbaren Datei94 s87 s94 s102 s
Spitzenspeicher (RSS)286 MB558 MB336 MB284 MB
Platten-E/A (GiB)73,273,272,872,7

Ein Lauf je Budget auf dem Release-Build, gegen dieselbe Ausgabe-Prüfsumme wie die Sechs-Arme-Runde abgesichert. Das engste Budget kostet etwa 9 % der Wanduhrzeit, und nur weil diese Leitung 10 GbE ist - ausgelagerte Blöcke kosten nur dann Zeit, wenn die Leitung die Platte überholt, auf einer typischen Heimleitung ist ein kleines Budget also nahezu kostenlos. Die ganze Leiter, einen 87-GB-Download eingeschlossen, passt in 0,3-0,6 GB Speicher; bei Werkseinstellungen lief der Job in 286 MB. Kein anderer Client bietet ein hartes prozessweites Speicherbudget; das Nächstliegende sind Cache-Größen-Regler, und die Runde unten misst, was die kosten.

Der Deckel angetreten gegen die eigenen Regler des Feldes. Beim 34-GB-Testfall (23. August 2026, 1-Gbit-Maschine, fünf Provider, 30 von 30 Etappen byte-korrekt) verdoppelte das Halten von NZBGet auf einen gleichwertigen Cache-Deckel mehr als seine CPU (215,5 auf 453,0 CPU-Sekunden, 2,10x), um einen Rückgang seines Spitzenspeichers um 52 % zu erkaufen, und SABnzbds Deckel war nahezu kostenlos, erreichte aber nur einen Teil seines Fußabdrucks. rustnzbs Cache-Einstellung war im getesteten Build dekorativ, und Weaver hat gar keinen Speicherregler, sodass beide ungedeckelt als Referenzspalten liefen, statt gegen ein Budget bewertet zu werden, das sie nicht halten können. Unsere eigene Seite jener Runde wird von der v1.2.2-Leiter oben abgelöst, die dasselbe beim 2,5-Fachen der Größe sagt: das Budget ist nie die bindende Beschränkung, weil Ein-Durchgang von vornherein so wenig hält.

Freier Speicherplatz · auf das Megabyte genau gemessen

Wie wenig freien Speicherplatz ein Job braucht

Ein Client, der auslagert und dann entpackt, braucht Platz für die Archivteile und die entpackte Nutzlast gleichzeitig, ein Job startet also nicht ohne rund das Doppelte des Downloads frei. Ein-Durchgang braucht die Nutzlast - und diese Runde maß, wie viel mehr, indem das Zielvolumen verkleinert wurde, bis jeder Client scheiterte. nzbfasts Antwort ist eine Konstante von rund 50 MB Puffer, kein Verhältnis, und das gilt von einem 6,5-GB-Job bis zu einem 34-GB-Job.

freier Speicherplatz, den der Job braucht6,5-GB-Job34-GB-Job
nzbfast 1.2.2die Ausgabe + 48,6 MBdie Ausgabe + 51,0 MB
NZBGet 26.3-testing~2.1x die Nutzlast~2.1x (37,6 GB über der Ausgabe)
SABnzbd 5.1.1~2.1x die Nutzlast~2.1x (37,6 GB über der Ausgabe)
rustnzb 1.4.5~2.25x die Nutzlast~2.25x (42,7 GB über der Ausgabe)
Weaver 0.7.8~2.25x die Nutzlast~2.25x (42,7 GB über der Ausgabe)¹

Gemessen auf einer 20-Kern-Apple-Silicon-Maschine, 1-Gbit-Leitung, fünf Provider, drei Wiederholungen an jeder Grenze, jede abgeschlossene Etappe byte-geprüft - die Konkurrenzzeilen vom 22.-23. August 2026 (Weavers 34-GB-Zelle am 24. August erneut gelaufen, Fußnote 1), und die nzbfast-Zeile am 24. August erneut auf dem v1.2.2-Release-Build geschnitten, was beide Grenzen exakt reproduzierte, 12 von 12 Etappen über beide Testfälle hinweg einhellig. Unsere Zellen sind eine gemessene Untergrenze: der Job schließt 3 von 3 mit 48,6 MB und 51,0 MB Puffer ab und verweigert 3 von 3 etwa 17 MB darunter - die Grenze ist also in beide Richtungen real. Was der Job tatsächlich hält, pendelt sich bei der Ausgabe plus etwa 3 MB ein; der Puffer bezahlt die letzten Momente der Pipeline, nie eine zweite Kopie. Die Zellen der Konkurrenten sind ihre gemessene Untergrenze beim 6,5-GB-Job und eine bestätigte Hinlänglichkeit beim selben Verhältnis beim 34-GB-Job (3 von 3 byte-korrekt bei genau diesem Verhältnis); wir haben ihre Leiter bei der größeren Größe nicht weiter nach unten abgeschritten, ihre wahre Untergrenze dort könnte also etwas unter dem Verhältnis liegen, und wir sagen das, statt zu unseren eigenen Gunsten zu runden.

Wie ein Volllaufen tatsächlich aussieht, zählt genauso viel wie die Zahl. 17 MB unter seiner Untergrenze trifft nzbfast auf die Ablehnung der Platte bei einem Schreibvorgang, hält sauber an mit „kein Speicherplatz mehr frei", behält alles, was gelandet ist, journalisiert, und ein erneuter Versuch nimmt den Faden auf, ohne erneut zu laden - ein Teilergebnis, das Sie behalten, kein gescheiterter Job. ¹ Weavers Zelle beim großen Testfall wurde durch einen erneuten Lauf am 24. August geklärt: drei von drei Etappen byte-korrekt beim selben ~2,25-Fachen, jede davon schneller als die gute Etappe des ersten Versuchs, bei bis aufs Byte identischem freiem Speicher. Beim ersten Versuch, am 23. August, waren zwei seiner drei Etappen bei einstelligen MB/s mit mehr als 60 GB noch frei ins Stocken geraten und hatten das 40-Minuten-Limit der Runde erreicht. Dieses Stocken kam nicht wieder, und die Stockungs-Instrumentierung des Prüfstands war auf allen drei Etappen des erneuten Laufs aktiv und still, was eine positive Messung ist und keine fehlende. Was es verursacht hat, ist weiterhin unbekannt, und ein sauberer erneuter Lauf ist keine Diagnose: es gibt jetzt sechs Etappen bei diesem Verhältnis, vier davon abgeschlossen, und beide Ausfälle stammen aus einem einzigen 80-Minuten-Fenster in der ersten Nacht.

Die Konsequenz des Multiplikators

Ihre Platte setzt Ihr Tempolimit

Für jedes Laufwerk ist die Leitungsgeschwindigkeit, die Sie durch Download, Prüfung und Entpacken durchhalten können, die tatsächliche Rate des Laufwerks geteilt durch den E/A-Multiplikator des Clients. Die Kostentabellen oben messen unseren bei etwa 1,0x - jedes Byte durchläuft die Platte etwa einmal - und jeden Konkurrenten bei 2,0x bis 3,0x für byte-identische Ausgabe. Dasselbe Laufwerk hält unter nzbfast also die zwei- bis dreifache Leitungsgeschwindigkeit durch, die es unter einem bühnengebundenen Client halten würde. Die Arithmetik, mit den Multiplikatoren aus den gemessenen Tabellen oben:

LeitungNutzlastratePlatte nötig bei unseren ~1.0xbei 2,2xbei 3,0x
100 Mbit12,5 MB/s~13 MB/s~28 MB/s~38 MB/s
1 Gbit125 MB/s~130 MB/s~275 MB/s~375 MB/s
5 Gbit625 MB/s~650 MB/s~1.400 MB/s~1.900 MB/s
10 Gbit1,25 GB/s~1,3 GB/s~2,75 GB/s~3,75 GB/s

Setzen Sie diese Spalten in Bezug zu dem, was Laufwerke tatsächlich durchhalten. Eine 5400/5900-U/min-NAS-Platte hält auf ihren äußeren Spuren etwa 100-140 MB/s, absackend Richtung 80-100, während sie sich füllt - Gigabit ist bei der langsamsten Klasse also schon bei 1,0x grenzwertig, was wir offen sagen, und bei 2-3x unerreichbar. Eine 7200-U/min-Platte hält etwa 160-220 MB/s. Die ~550 MB/s einer SATA-SSD deckeln einen 2,2x-Client bei nahe 2 Gbit und tragen bei 1,0x etwa 3,5-4 Gbit. SMR-Platten, seit Jahren in NAS-Gehäuse verkauft, sind der schlimmste Fall speziell für das bühnengebundene Muster: anhaltendes Schreiben mit Rücklesen kann auf zehn MB/s einbrechen, sobald der Reshingling-Cache der Platte erschöpft ist. Und eine Multi-Gig-Leitung ist dieselbe Wand weiter oben: 10 Gbit bei einem 2-3x-Multiplikator verlangt anhaltende 2,75-3,75 GB/s, vorbei an jeder SATA-Platte und vorbei an vielen NVMe-Laufwerken, sobald ein großer Job ihre schnelle Cache-Zone überholt, während bei 1,0x eine ~2-GB/s-SSD mit Leitungsgeschwindigkeit und Raum übrig mithält.

Gemessen statt behauptet, auf einer gedrosselten Platte. Wir haben eine Platte auf 150 MB/s gedeckelt - eine Rate der 5400-U/min-Klasse - und denselben Download zweimal gefahren: einmal in einem Durchgang, einmal nach dem Muster des bühnengebundenen Auslagerns, Rücklesens und Entpackens. Der Ein-Durchgang-Arm hielt mit der 1-Gbit-Leitung mit, bei 109,9 MB/s, 0,2 % unter seiner eigenen ungedeckelten Rate; das bühnengebundene Muster fiel auf 59,0 MB/s, 54 % der Leitung. Parametrisch durchgefahren, ohne Leitungslimit, nahm der Ein-Durchgang-Arm 97 % dessen, was die Platte bei jedem Deckel bot (290,7 MB/s eines 300-MB/s-Deckels, 145,6 von 150) bei gemessenen 1,00-1,03x Geräte-E/A, und das bühnengebundene Muster nahm 47-48 % bei gemessenen 3,02x - das Verhältnis über die Deckel hinweg konstant, was die Arithmetik oben als Messung reproduziert. 32 Etappen, jede Ausgabe byte-geprüft.

Und einmal auf echter Hardware, ungedrosselt. Die langsamste Platte in unserer Testflotte ist eine TLC-Systemplatte auf einer nativen Windows-10-GbE-Maschine, die 0,99 GB/s an Schreibvorgängen hält, wo unsere schnellste Testmaschine 5,97 hält. Die 87-GB-Windows-Runde oben lief darauf: der Ein-Durchgang-Arm brauchte etwa 0,73 GB/s dieser 0,99, um bei 105 s Wanduhrzeit zu bleiben - Spielraum übrig auf der schlechtesten Platte der Flotte -, was die obere rechte Zelle der Tabelle oben ist, die auf einer echten statt einer gedrosselten Platte landet. Und das schnelle Ende der Flotte schließt das Argument von der anderen Seite: derselbe 87-GB-Job, mit voller Rate bei 10 GbE, wird in denselben 70-71 Sekunden fertig auf einer 1,24-GB/s-Platte wie auf einer 5,97-GB/s-Platte - eine 4,8x schnellere Platte bewegt die Wanduhrzeit um null, weil bei einem 1,0x-Multiplikator der Leitung lange vor der Platte die Puste ausgeht. Für einen bühnengebundenen Client sind diese beiden Platten verschiedene Welten.

Was diese Anlage ist und was nicht. Die Platte wurde mit einem Betriebssystem-E/A-Controller in einer virtuellen Maschine auf einer 32-Kern-Apple-Silicon-Maschine gedeckelt, und der bühnengebundene Arm ist unser eigenes Binary, umgebaut, um so zu schreiben, rückzulesen und neu zu schreiben, wie es ein bühnengebundener Client tut. Kein Konkurrent lief darin - die Mock-Leitung der Anlage liefert einfache Dateien, die auch ein Konkurrent in einem Durchgang verarbeiten würde, ihn darauf loszulassen würde also nichts zeigen -, was bedeutet, dass die Tabelle oben Arithmetik ist, verankert an einem gemessenen Paar, wobei die Multiplikatoren der Konkurrenten aus den echten Fünf-Client-Tabellen oben stammen, und wir kennzeichnen sie absichtlich so. Drei Ehrlichkeitshinweise gehören dazu. Der Controller budgetiert Lesen und Schreiben getrennt, was den bühnengebundenen Arm begünstigt; auf einem Gerät mit einem gemeinsamen Budget, das jede rotierende Platte ist, wäre sein Anteil noch niedriger. Der bühnengebundene Multiplikator liegt bei etwa 2x, wenn die Volumes beim Rücklesen noch im Seiten-Cache sind, und bei 3x, wenn nicht, ein großer Job auf einer normalen Maschine liegt also am 3x-Ende. Und die Suchkosten beim Schreiben, Rücklesen und Löschen hunderter Volume-Dateien - gegen eine Datei, einmal in Reihenfolge geschrieben - sind ein Argument aus der Form des Traffics, noch keine Messung: es braucht eine rotierende Platte, und wir zitieren es als Argument, bis es eine hat.

Form zwei · der Münzwurf beim großen Release

Verschlüsselte Archive: ein Durchgang, wie alles andere

Die Hälfte von allem, was über 60 GB gepostet wird, ist ein verschlüsseltes Archiv, und das ist die Form, bei der bühnengebundene Clients am meisten zahlen: die verriegelten Daten müssen ausgelagert, rückgelesen, entriegelt und erneut geschrieben werden. nzbfast entriegelt jedes Stück, sobald es ankommt, sodass die verriegelten Daten die Platte überhaupt nie erreichen. Gemessen an einem echten 94 GB großen verschlüsselten Release:

94-GB-verschlüsseltes Release, ein Durchganggemessen
Auf die Platte geschrieben90,1 GB - etwa die Nutzlast, einmal
Meiste gleichzeitig genutzte Plattenmenge89,6 GB - die Ausgabedatei selbst
Pause nach dem Download0,6 s

Die meiste gleichzeitig genutzte Plattenmenge entspricht der Größe der angeforderten Datei. Es gibt keinen Moment während eines verschlüsselten Downloads, in dem nzbfast Platz für eine zweite Kopie braucht, und keinen Entriegelungsdurchgang, nachdem der Download-Balken sich gefüllt hat - ein bühnengebundener Client zahlt bei allen drei dieser Zeilen etwa das Doppelte, dasselbe 2x, das die Kostentabellen oben bei jeder anderen Form messen.

Die Form davon

Plattennutzung während eines 94-GB-verschlüsselten Downloads. Das bühnengebundene Muster und die Ein-Durchgang-Linie verlaufen exakt gleich, bis der Download endet, dann springt das bühnengebundene Muster auf 166 GB, während die Ein-Durchgang-Linie flach bei 90 GB bleibt.

Plattennutzung während eines Downloads, alle fünf Sekunden abgetastet. Die flache Linie ist nzbfast; die Linie, die am Ende auf 166 GB steigt, ist das Auslagern-und-Entriegeln-Muster, das für die fertige Datei zahlt, während die verriegelte Kopie noch auf der Platte liegt - gemessen, indem beide Muster über demselben Release gefahren wurden.

Verschachtelte Beiträge · gemessen am 28. August 2026

Zehn Arten, einen Beitrag zu verpacken, und wer die Datei wirklich erreicht

Vieles, was veröffentlicht wird, ist absichtlich schwer zu öffnen. Der echte Dateiname steckt in einem zweiten Archiv, manchmal einem dritten, manchmal auf jeder Ebene in einem anderen Format, damit der Beitrag so wenig wie möglich über seinen Inhalt verrät. Hinzu kommt, dass Beiträge beschädigt ankommen: Artikel verfallen, Uploads landen unvollständig, und die Wiederherstellungsdaten müssen benutzt werden, bevor überhaupt etwas entpackt werden kann. Ein Downloader geht diese Kette für Sie durch, oder er übergibt Ihnen einen Ordner voller Archive und hört auf.

Wir haben deshalb zehn Formen gebaut, die genau das isolieren, jeden aktuellen Client dagegen antreten lassen und dann getan, was Vergleichstests sonst auslassen: Wo ein Client zu früh aufhörte, haben wir die Arbeit von Hand mit den Standardwerkzeugen beendet und auch das gemessen. Ein Client, der schnell aufgibt, wirkt schnell, bis man die Arbeit zählt, die er Ihnen hinterlässt.

zehn verpackte und beschädigte Formenallein fertiggestellterst nach manueller ReparaturDatei nie erreicht
NZBGet 26.32 von 1080
SABnzbd 5.1.25 von 1032
nzbfast 1.2.410 von 1000
rustnzb 1.4.57 von 1012
Weaver 0.7.81 von 1018

nzbfast ist der Einzige, der alle zehn ohne Hilfe schafft. NZBGet erreicht die Datei ebenfalls bei jeder Form, braucht dafür aber 16 Durchgänge manueller Reparatur und Entpackung bei acht davon. SABnzbd schafft fünf ohne Hilfe, zwei bleiben auch von Hand unerreichbar. Weaver erreicht die Datei bei zweien.

Das Muster ist nicht zufällig. Die Formen, die nzbfast durchläuft und die anderen nicht, sind die verpackten und die beschädigten: ein Archiv im Archiv, ein Formatwechsel auf halbem Weg, eine fünfstufige Kette und vor allem ein Archiv, das beschädigt ankommt und seine eigenen Wiederherstellungsdaten mitbringt. Bei Letzterem entpacken vier Clients den äußeren Satz einwandfrei, übergeben Ihnen das defekte Archiv samt dem Wiederherstellungssatz, der es reparieren würde, und hören auf.

Wo Clients dieselbe Arbeit erledigen, ist der Abstand deutlich. Dies sind die sieben Formen, die alle vier verbreiteten Clients erreichen, einschließlich der jeweils nötigen manuellen Reparatur:

die sieben von allen vier erreichten FormenZeit bis zur nutzbaren Dateiauf die Festplatte geschrieben
NZBGet 26.351,2 s29,83 GB
SABnzbd 5.1.252,3 s32,27 GB
nzbfast 1.2.410,3 s11,68 GB
rustnzb 1.4.541,8 s27,75 GB

Vier- bis fünfmal schneller, bei weniger als der Hälfte der geschriebenen Bytes. Der Festplattenwert ist der, der nach dem Download weiter zählt: Jedes Gigabyte in dieser Spalte ist ein Gigabyte, das Ihr Laufwerk aufnehmen musste, und die Clients, die den Auftrag zwischenspeichern, schreiben die Nutzdaten heraus, lesen sie zurück und schreiben sie erneut.

Wo wir nicht vorn liegen, und warum das gesagt gehört. Bei vier der zehn Formen schreibt ein Mitbewerber während des Downloads selbst weniger Bytes als nzbfast. Jedes Mal, weil er weniger getan hat: Bei der Form mit beschädigtem Innenarchiv schreibt NZBGet 3,29 GB gegenüber unseren 4,65, dann schreibt sein Reparaturdurchgang weitere 2,91 und endet bei 6,20 GB gegenüber unseren 4,65. Bei den übrigen ist der Client, der am wenigsten geschrieben hat, einer, der die Datei nie erreicht hat. Ein kleiner Festplattenwert ist nicht immer Sparsamkeit.

Das sind Fähigkeitstests, keine Geschwindigkeitstests. Die Nutzdaten sind klein und werden aus dem Arbeitsspeicher über eine lokale Verbindung geliefert, ohne Provider und ohne Netzwerk dazwischen. Nichts hier wird durch die Downloadgeschwindigkeit begrenzt, und die absoluten Sekunden sind weit kürzer, als dieselben Formen in der Praxis brauchen würden. Ob eine Form überhaupt Handarbeit erfordert, ist eine Eigenschaft der Form und des Clients und lässt sich direkt übertragen. Die Sekunden vergleichen Clients bei identischer Arbeit, sie sagen nicht voraus, wie lange ein echter Auftrag dauert.

Vollständige Ergebnisse je Form, die Beschreibung jeder Form und die Methode finden Sie auf der Datenseite zu verschachtelten Archiven.

Warum es zählt

Ihr Laufwerk leistet die halbe Arbeit

Flash-Speicher nutzt sich durchs Beschreiben ab. Ein 94 GB großes Release kostet Ihr Laufwerk unter nzbfast etwa 90 GB an Schreibvorgängen; bei einem Client, der auslagert und entpackt, kostet dasselbe Release etwa das Doppelte. Auf einem NAS mit Festplatten entfernt die Ein-Durchgang-Form außerdem den langen einsträngigen Durchgang am Ende jedes verschlüsselten Downloads - eine Pause, gemessen bei 20 Sekunden auf einer schnellen 32-Kern-Workstation mit hardwarebeschleunigter Entriegelung, und entsprechend länger auf den stromsparenden Maschinen, auf denen die meisten Leute das tatsächlich betreiben. Wir zitieren die kleine Zahl, weil es die ist, die wir gemessen haben.

Komponenten-Vergleiche

Die technischeren Benchmarks, für alle, die mehr Daten mögen

Reparatur (PAR2) und Entpacken (RAR) sind unser eigener nativer Code statt gebündelter Fremd-Binaries, deshalb lassen wir sie auch eigenständig gegen die dedizierten Werkzeuge auf identischen Korpora antreten, auf vier Maschinen, die abdecken, was ein Leser tatsächlich besitzen könnte. Eine Zeit zählt nur, wenn die Ausgabe byte-identisch zur Quell-Nutzlast ist: jede RAR-Zahl unten wurde per sha256 gegen die Quelle geprüft, und jede reparierte Datei gegen den unversehrten Satz.

4 Maschinen, Laptop bis 32-Kern 7 RAR-Archivformen 6 getestete Extraktoren 1 GB Nutzlast je Form bester von 3, verschränkt, warmer Cache

RAR-Extraktion: 7 Archivformen, 6 Werkzeuge

Die vorige Runde dieser Tabelle nutzte 100 MB bis 200 MB je Form, was ein Fehler war: etwa 28 ms Prozessstart waren 40 % der gespeicherten Etappe, und die Reihenfolge, die dabei herauskam, überlebt bei realistischer Größe nicht. Diese Runde nutzt 1 GB Nutzlast je Form, und das ändert mehrere Antworten, einige davon in die andere Richtung. Archive werden mit dem offiziellen rar 7.23 erzeugt, damit kein Werkzeug an Eingaben aus seinem eigenen Encoder gemessen wird, und dieselben Bytes treten auf jeder Maschine an.

Was in der Nutzlast steckt, zählt mehr, als es aussieht. Eine aus Blockkopien gebaute Nutzlast macht jede komprimierte Form zu einem Speicherkopier-Benchmark; eine Nutzlast aus reinem Text macht sie zu einem Literal-und-Huffman-Benchmark; wir haben beides gemessen, und sie stimmen nicht darin überein, wer gewinnt. Die vier komprimierten Formen nutzen deshalb gleiche Drittel aus Text, strukturierten Datensätzen und inkompressiblen Bytes, und die zwei Formen an den Enden dieser Spanne sind absichtlich eigene Etappen: store ist inkompressibel und repetitive besteht fast nur aus Treffern. Der Baugenerator und der Testrahmen liegen im Repository, der Korpus lässt sich also byte für byte neu aufbauen.

Am 23. August 2026 erneut auf der 1.2.2-Engine angetreten, und der Sweep hält stand. Die drei Werkzeuge, die ein Leser am ehesten gegeneinander abwägt - unseres, unrar 7.23 und rarpar 0.2.5 - traten erneut auf dem 32-Kern-Desktop auf der Release-Engine an (der getestete Extraktionscode ist byte-identisch mit dem 1.2.2-Tag), sechs verschränkte Runden, Minimum je Werkzeug, jede Etappenausgabe gegen das Nutzlast-Manifest geprüft. Sekunden, niedriger ist besser:

1-GB-Nutzlast, 32 Kerne (23. Aug. 2026)store400 kleine Dateiensolidrepetitivegroß, 3 Volumesverschlüsselt128-MiB-Wörterbuch
nzbfast 1.2.20,1190,4741,5150,1201,1181,1371,146
unrar 7.230,1902,0321,7840,1391,6551,8461,420
rarpar 0.2.50,2062,5632,3950,2371,8521,8571,725

Alle sieben Formen gehen an uns, sowohl beim Minimum als auch beim Median, 1,16x bis 4,29x gegen unrar. Diese Zeiten sind nicht Zelle für Zelle mit der breiteren Tabelle unten vergleichbar - der Testrahmen wurde seit deren Runden überarbeitet, und die Rundenzahlen unterscheiden sich -, lesen Sie also jede Tabelle für sich. Die breitere Tabelle behält ihre eigenen Daten und ihr Sechs-Werkzeuge-Feld, und ihre nzbfast-Spalte beschreibt die Engine, die 1.2.2 ausliefert: das erneute Antreten oben maß die aktuelle Engine gleichauf mit dem Build jener Tabelle auf allen sieben Formen, entschieden über Hardware-Instruktionszahlen (0,14 % weniger für dieselbe Wanduhrzeit), diese Zellen sind also nicht die Zahlen eines abgelösten Builds unter aktuellem Etikett. Dieses erneute Antreten ist auch der Ort, an dem sich die A/A-Regel im Aufbau-Abschnitt verdient hat. Ein gleichtägiger Durchlauf meldete zunächst eine Form als kleine Regression gegen unseren eigenen vorigen Build, und der Befund überlebte das Fahren beider Armreihenfolgen. Eine A/A-Kontrolle - dasselbe Binary gegen eine byte-identische Kopie seiner selbst - zeigte, dass der Testrahmen demjenigen Arm, der zuerst lief, einen Malus von etwa 1,5 % zuschanzte: das identische Binary gewann nur 6 von 15 Runden vom ersten Platz aus, und vertauschte Reihenfolgen heben eine Verzerrung, die immer auf demjenigen landet, der zuerst dran ist, nicht auf. Hardware-Instruktionszahlen entschieden die Frage, die der Testrahmen nicht klären konnte - der neuere Build zieht 0,14 % weniger Instruktionen für dieselbe Wanduhrzeit, es gab also keine Regression. Jeder von uns veröffentlichte Vergleich unseres eigenen Builds gegen unseren eigenen Build trägt diese Kontrolle jetzt.

Das ganze Feld, Sekunden, niedriger ist besser. Bester von drei, Werkzeuge innerhalb jeder Runde verschränkt statt in Blöcken gefahren, Ausgabe bei jedem einzelnen Lauf gegen die Quell-Nutzlast geprüft. Ein Werkzeug, das die falschen Bytes lieferte, bekommt einen Korrektheitshinweis, nie eine schnelle Zeit. rarpar ist Weavers eigener RAR- und PAR2-Code, aus dem Quelltext bei bd87611 gebaut; wir pinnen den Commit statt einer Version, weil seine Crates drei verschiedene Versionsnummern tragen.

Sekunden, 1 GB je Formstore400 kleine Dateiensolidrepetitivegroß, 4 Volumesverschlüsselt128-MiB-Wörterbuch
High-End-Desktop, 32 Kerne
nzbfast0,210,471,260,141,081,091,07
unrar 7.230,212,021,620,161,611,821,37
rarpar0,232,552,220,261,751,741,64
unar 1.10.70,606,405,290,695,416,884,03
bsdtar0,3413,6711,481,86falsche Ausgabe²keine Krypto³kein großes Wörterbuch⁴
7-Zip0,30nicht unterstützt¹nicht unterstützt¹nicht unterstützt¹nicht unterstützt¹nicht unterstützt¹nicht unterstützt¹
Älterer Desktop, 20 Kerne
nzbfast0,160,571,830,151,501,511,40
unrar 7.230,252,482,310,202,282,491,84
rarpar0,283,153,000,312,262,261,97
unar 1.10.70,677,496,930,856,858,495,29
bsdtar0,3315,5813,972,18falsche Ausgabe²keine Krypto³kein großes Wörterbuch⁴
7-Zip0,33nicht unterstützt¹nicht unterstützt¹nicht unterstützt¹nicht unterstützt¹nicht unterstützt¹nicht unterstützt¹
Laptop, 14 Kerne / 20 Threads, Windows⁵
nzbfast0,351,052,920,322,322,222,04
unrar 7.230,636,376,140,622,923,332,44
rarpar0,7411,589,760,542,722,852,38
unarkeine CLI⁵keine CLI⁵keine CLI⁵keine CLI⁵keine CLI⁵keine CLI⁵keine CLI⁵
bsdtar0,8116,7215,141,13falsche Ausgabe²keine Krypto³kein großes Wörterbuch⁴
7-Zip0,765,455,790,654,214,132,51
Laptop, Apple M5 Max⁶
nzbfast0,100,401,150,100,980,990,94
unrar 7.220,161,941,870,151,751,911,52
rarpar0,112,091,970,181,541,551,33

Wo das Feld nicht mithalten konnte, und warum. ¹ Das hier getestete 7-Zip ist das Homebrew-Paket, das jede komprimierte Form mit ERROR: Unsupported Method ablehnt und auf macOS nur die gespeicherte Form liest. Eine frühere Version dieser Seite schrieb das 7-Zips macOS-Build zu, was falsch war: Homebrew baut es ohne den nicht-freien unRAR-Codec, während das macOS-Build von 7-zip.org den Codec mitbringt und alle sieben Formen dekodiert, wie es das Windows-Build tut. Erneut gemessen am 14. August 2026. Wenn Sie 7-Zip vom Projekt statt von Homebrew installieren, beschreibt diese Spalte nicht, was Sie haben. ² bsdtar hat keine RAR5-Mehrteil-Unterstützung und lieferte eine abgeschnittene Datei, ohne einen Fehler zu melden, diese Etappe ist also ein Korrektheitsversagen statt einer langsamen Zeit; unser Testrahmen fing das ab, indem er die Ausgabe prüfte, weshalb es sich lohnt, die Ausgabe zu prüfen. ³ bsdtar: Encryption is not supported. ⁴ bsdtar: Declared dictionary size is not supported. ⁵ unar liefert kein Windows-Kommandozeilenwerkzeug aus, das Laptop-Feld ist also fünf. ⁶ Die M5-Max-Gruppe lässt die drei Werkzeuge antreten, zu denen ein macOS-Leser tatsächlich greifen würde - unrar, rarpar und wir; unar, bsdtar und 7-Zip traten auf dieser Maschine nicht an. Ihr unrar ist 7.22, der neueste Build, der dort unbeaufsichtigt läuft.

Jede Form auf jeder Maschine bis auf eine, und die ist ein Unentschieden. Die Formen mit kurzen Treffern kommen auf zwei bestimmte Dinge in unserem Decoder herunter. Ein Treffer von zwei bis zweiunddreißig Bytes bezahlte früher für einen vollen Aufruf der Speicherkopierroutine der Plattform, und der Aufruf kostete mehr als das Kopieren; stattdessen feste zweiunddreißig Bytes über ein Register zu kopieren ist, warum repetitive, solid und das 128-MiB-Wörterbuch - die drei aus kurzen Treffern gebauten Formen - alle auf einmal schnell sind. Und die Prüfsumme läuft dem Thread des Schreibers nach statt auf ihm. Die eine Zelle, die wir nicht klar gewinnen, ist die gespeicherte Form auf dem 32-Kern-Desktop, wo unrar und wir drei Millisekunden auseinanderliegen, bei einer Etappe, die rein Bytes bewegt - bei der Genauigkeit dieser Tabelle identisch, also sind beide Zellen markiert, und es zählt als Unentschieden, nicht als Verlust und nicht als Sieg.

Die Form, die wir am deutlichsten gewinnen, ist die, von der Usenet tatsächlich Hunderte auf einmal postet: 400 kleine Dateien, 4,3× und 4,4× gegen unrar und 5,4× bis 5,5× gegen rarpar. Das ist Parallelität pro Mitglied, und das ist der Unterschied zwischen einem Extraktor, der für eine Download-Warteschlange geschrieben wurde, und einem, der für eine Kommandozeile geschrieben wurde. Die gespeicherte Form, die laut der Zählung oben 84 % der Bytes auf der Leitung ausmacht, ist für die drei ernsthaften Werkzeuge ein nahes Unentschieden, weil an dieser Stelle jeder nur Bytes bewegt.

Eine Entscheidung, die es wert ist, genannt zu werden. Die Archive werden mit dem Kompressor fest auf vier Threads gepackt. Der Blocksplit von RAR folgt sonst der Kernzahl der packenden Maschine, sodass eine 32-Kern-Maschine und eine 20-Kern-Maschine aus derselben Eingabe verschiedene Bytes erzeugen und die Maschinen nicht mehr vergleichbar sind. Das Fixieren macht den Extraktionskorpus überall byte-identisch, das ist der Sinn, deckelt aber auch, wie viel vom Decodieren parallel laufen kann - als also die beiden nächstliegenden Formen Verluste waren, traten wir erneut gegen Archive an, die mit allen 32 Threads gepackt waren, um zu prüfen, dass nicht das Fixieren die Ursache war. War es nicht: solid rückte von 4,2 % Rückstand auf 2,4 % Rückstand, und das 128-MiB-Wörterbuch von 6,6 % auf 6,3 %, dieselbe Reihenfolge so oder so. Beide sind auf dem fixierten Korpus jetzt Siege, mit größerem Abstand, als diese Prüfung erklären könnte.

Warum es keine RAR4-Zeile gibt, und was mit diesen Posts passiert. Jede Form oben ist RAR5 oder RAR7, was Usenet heute postet. Ältere RAR4-Archive tauchen immer noch auf, und dieselbe Engine liest sie, komprimierte und passwortgeschützte Formen eingeschlossen, in demselben einzigen Durchgang wie die neueren, statt die Volumes auf die Platte zu schreiben und sie danach zu entpacken. Sie bekommen hier keine Zeile, weil das offizielle rar 7.23 kein RAR4 mehr erzeugen kann, es gibt also keinen neutralen Korpus, um das Feld antreten zu lassen; diese Arbeit wird stattdessen gegen von WinRAR 3.00 geschriebene Archive geprüft, byte für byte gegen unrar.

PAR2-Prüfung und -Reparatur: 1-GiB-Satz, vier Schadstufen

Korpus: 1 GiB Zufalls-Nutzlast, store-gepackt in 21 RAR-Volumes, dann zwei PAR2-Sätze bei 10 % Redundanz, einer mit 1-MiB-Blöcken und einer mit 64 KiB, dann feste Schadenskarten. Jeder Lauf nutzt dasselbe Protokoll: frische Kopie, den ganzen Korpus einmal lesen, um den Cache aufzuwärmen, dann messen. Bester von drei verschränkten Runden; jedes reparierte Volume wird bei jeder Runde gegen den unversehrten Satz geprüft. Niedriger ist besser.

Eine Korrektur zum Korpus, weil eine frühere Version dieser Seite ihn überzeichnet hatte. Wir sagten, jede Maschine fährt einen byte-identischen, per Hash geprüften Korpus. Jedes Volume jedes Satzes zu hashen zeigt, dass das für den 32-Kern-Desktop und den Windows-Laptop stimmt, die exakt übereinstimmen, und nicht für den 20-Kern-Desktop, der einen anderen Zufallszug derselben Form hält: dieselben 21 Volumes in denselben Größen, dieselben zwei Blockgrößen, und der Schaden bei denselben 3, 101 und 1.500 Blöcken geprüft, verteilt über dieselbe Anzahl Dateien. Jede Zahl innerhalb einer Zeile ist noch immer an Bytes gemessen, die jedes Werkzeug in dieser Zeile teilt, worauf jeder Vergleich beruht. Aber die Zeilen sind nicht vier Ansichten einer Eingabe, und da der Charakter der Nutzlast einem Konkurrenten beim Scannen etwa 7 % wert ist, lohnt es sich, das zu sagen, statt es zu übertünchen.

Welches par2 welches ist. Das ursprüngliche par2cmdline ist die Referenzimplementierung, von der jeder andere abgeleitet ist. par2cmdline-turbo ist der Fork, der ParPars handgeschriebene SIMD-Galoisfeld-Kernel mitbringt: genau das bedeutet „turbo", und deshalb ist turbo, statt des Originals, das Werkzeug, das es wert ist, gegen uns gemessen zu werden. Beide Turbo-Spalten unten laufen mit denselben ParPar-Kernen. Was sie trennt, ist nicht die Arithmetik, sondern der Build und die Flags.

Am 24. August 2026 auf dem ausgelieferten Build gegen den aktuellen Konkurrenten bestätigt. Diese Tabellen wurden gemessen, bevor 1.2.2 geschnitten wurde und bevor par2cmdline-turbo 1.5.0 veröffentlichte (20. August 2026), also trat die 20-Kern-Spalte erneut gegen beide an: unser 1.2.2-Release-Build gegen turbo 1.5.0, drei verschränkte Runden je Etappe, jede reparierte Datei gegen den unversehrten Satz geprüft. Alle vier Etappen reproduzieren sich - unsere 0,18 / 0,30 / 0,75 / 2,02 gegen die hier gedruckten 0,19 / 0,33 / 0,74 / 2,07, und turbo 1.5.0 landet bei jeder Etappe und beiden Konfigurationen innerhalb weniger Prozent vom Build in der Tabelle. Die Zellen bleiben wie veröffentlicht stehen; die anderen drei Maschinen behalten ihre eigenen Daten.

Die Konkurrenz erscheint also zweimal, und eine dieser Spalten ist ihr Best-Case statt ihre Voreinstellung. Das Release-Binary, das Sie herunterladen würden, ist für eine generische Baseline-CPU kompiliert und hasht nur ein paar Dateien gleichzeitig; dieselbe Quelle für die tatsächliche Host-CPU zu bauen und -T16 zu übergeben, lässt es die Instruktionen nutzen, die diese Maschine wirklich hat, und sechzehn Dateien gleichzeitig hashen. Auf dem Laptop ist das bis zu 2,6x wert, allein von Build und Flags. Beurteilen Sie uns anhand der abgestimmten Spalte, das ist der härtere Vergleich; die Spalte „wie ausgeliefert" ist das, was jemand erlebt, der es herunterlädt. par2cmdline ist das Original, Version 1.2.0, auf jeder Maschine aus dem Quelltext gebaut. rarpar ist Weavers eigene PAR2-Implementierung, aus dem Quelltext mit aktiviertem Metal-GPU-Backend gebaut. MultiPars par2j ist Windows-only, es erscheint also nur in den Windows-Laptop-Zeilen. Die M5-Max-Zeilen lassen die beiden Werkzeuge mit aktuellen macOS-arm64-Builds neben den beiden Turbo-Spalten antreten; das klassische par2cmdline trat auf dieser Maschine nicht an.

Sekunden, 1-GiB-SatzDesktop, 32 KerneDesktop, 20 KerneLaptop, 14 KerneLaptop, M5 Max
kein Schaden - saubere Prüfung
nzbfast0,110,190,230,18
par2-turbo, abgestimmt0,310,380,420,28
par2-turbo, wie ausgeliefert0,861,121,060,80
par2cmdline3,033,843,81nicht getestet
rarpar2,623,452,962,32
MultiParnur Windowsnur Windows1,34nur Windows
3 Blöcke beschädigt - ein paar tote Artikel
nzbfast0,220,330,460,26
par2-turbo, abgestimmt0,510,660,780,48
par2-turbo, wie ausgeliefert1,081,461,421,00
par2cmdline3,644,584,98nicht getestet
rarpar4,275,534,993,64
MultiParnur Windowsnur Windows1,71nur Windows
101 Blöcke beschädigt
nzbfast0,480,740,960,66
par2-turbo, abgestimmt0,881,171,400,85
par2-turbo, wie ausgeliefert2,042,652,691,84
par2cmdline5,577,5711,7nicht getestet
rarpar4,735,735,744,17
MultiParnur Windowsnur Windows2,65nur Windows
1,500 Blöcke beschädigt - 91 % der Wiederherstellung genutzt
nzbfast1,002,072,461,61
par2-turbo, abgestimmt3,005,526,734,07
par2-turbo, wie ausgeliefert5,218,209,306,01
par2cmdline67,786,1403nicht getestet
rarpar7,1511,4914,226,91
MultiParnur Windowsnur Windows5,40nur Windows

Alle sechzehn nzbfast-Zellen - vier Maschinen bei vier Schadstufen - gehen an uns, mehrere um mehr als das 2× gegen den abgestimmten Build und um das 2,3× bis 7,7× gegen das, was Sie tatsächlich herunterladen würden. Die Zellen mit schwerem Schaden sind die interessanten, und der Hinweis unten erklärt den Algorithmus dahinter.

Das Original ist zurück in der Tabelle, und es lohnt sich zu sehen, warum der Fork existiert. Eine frühere Version dieser Seite ließ die Spalte par2cmdline weg, mit der Begründung, sie sei langsamer als alles andere in der Runde, was stimmt und kein guter genug Grund ist: es ist die Implementierung, von der fast jedes andere Werkzeug abstammt, und Leser verdienen die Baseline statt unserer Behauptung darüber. Auf der schwersten Schadstufe braucht es etwa 69 s, wo der SIMD-Fork 3,2 s braucht und wir 3,1 s. Dieser Faktor zwanzig ist das ganze Argument für die handgeschriebenen Galoisfeld-Kernel, und es ist dasselbe Argument, das wir für unsere machen.

Leichter Schaden ist der Fall, der zählt. Eine Handvoll ausgefallener Artikel ist weit typischer als 101 tote Blöcke, und nichts wie 1.500. Der größte Teil einer leichten Reparatur ist gar nicht die Reed-Solomon-Mathematik, sondern das Lesen und MD5-Bilden eines Gigabytes, weshalb die 3-Block-Zeile eher der sauberen Prüfzeile folgt als den Reparaturzeilen.

Die schwerste Schadstufe ist eine andere Art Arbeit, und sie bekommt einen anderen Algorithmus. Diese letzte Stufe beschädigt 1.500 Blöcke über alle 21 Volumes hinweg und verbraucht etwa 91 % der Wiederherstellungsdaten, das ist der Punkt, an dem die Reed-Solomon-Arithmetik statt Hashing oder Platte fast die ganze Arbeit ausmacht. Der ausgelieferte Build berechnet die schwersten Reparaturen mit einer zahlentheoretischen Transformation statt der klassischen Galoisfeld-Faltung - dieselbe Mathematik, in einer Form ausgewertet, die bei hohen Blockzahlen deutlich besser skaliert: 2,7× vor dem abgestimmten Build auf dem 20-Kern-Desktop, und auf dem Windows-Laptop 2,7× vor dem abgestimmten Build und 2,2× vor MultiPar. Leichter Schaden läuft noch immer über den klassischen Pfad, weshalb sich die anderen Stufen kaum bewegten: die Transformation zahlt sich erst oberhalb von etwa 512 beschädigten Blöcken aus, darunter nutzt der Dispatcher sie also nicht.

Ein schnellerer Pfad ist nur etwas wert, wenn er nicht falsch sein kann. Beide Pfade berechnen dieselbe Größe und sind konstruktionsbedingt bitidentisch, und jede Reparatur auf dieser Seite wurde daran gemessen, ob die wiederhergestellten Dateien mit dem unversehrten Satz übereinstimmten: 228 zeitgemessene Reparaturen über die Maschinen dieser Runde, null Abweichungen. Der ausgelieferte Build verlässt sich nicht auf diese Bilanz. Jede Reparatur prüft ihre eigene Ausgabe gegen die Datei-Hashes, und eine fehlgeschlagene würde automatisch mit dem klassischen Pfad wiederholt, die Abweichung protokollieren und für den Rest dieses Laufs beim klassischen Pfad bleiben. Die Einstellung steht im Dashboard als Fast-PAR-Modus, falls Sie sie lieber gar nicht wollen, und Maschinen mit zu wenig Speicher dafür lehnen sie von sich aus ab, statt es zu versuchen und zu scheitern. Erneut gemessen am 2. August auf dem aktuellen Build: die beiden Desktops landen innerhalb weniger Prozent dieser Tabelle, und mit abgeschaltetem Fast-PAR-Modus fällt der 20-Kern-Desktop auf exakt die langsamere Zeit des klassischen Pfads zurück, was zeigt, dass der Sieg an der Methode liegt und nicht an den Bedingungen.

Die Spalte des Windows-Laptops brauchte eine Korrektur, und sie geht gegen uns. Windows verschiebt anhaltende Hintergrundarbeit nach ein paar Sekunden auf seine Effizienzkerne. Unser Daemon steigt beim Start daraus aus, und keines der anderen Werkzeuge kann das, sodass eine frühere Version dieser Seite deren gedrosselte Zeiten veröffentlichte, als wären es ihre eigenen. Diese Maschine mit jedem Werkzeug auf hohe Priorität gehoben erneut zu fahren, verschiebt das ganze Feld: auf der schwersten Schadstufe geht par2-turbo von 22,4 s auf 6,41, und rarpar von 59,2 s auf 14,4, und für einen Schnitt dieser Seite machte das aus der Spalte, die uns gehörte, eine, die wir verloren. Die ganze Laptop-Spalte wird jetzt so gemessen - die Korrektur bleibt bestehen, obwohl die Zeile inzwischen durch die Algorithmusänderung oben zurückgewonnen wurde, weil die Zeiten des Feldes auf dieser Maschine nur mit angehobener Drosselung ehrlich sind.

RAR-Wiederherstellungsdatensätze: Reparieren ohne PAR2

Wenn PAR2 den Schaden nicht abdecken kann, ist der Wiederherstellungsdatensatz im RAR selbst die letzte Verteidigungslinie. Bis 1.0.8 scheiterte unseres an jedem Archiv über etwa 13 MB, diese Etappe konnte also gar nicht gefahren werden. Schaden sind drei 3.000-Byte-Löcher bei 20 %, 50 % und 80 % durch den geschützten Bereich. Beide Werkzeuge lieferten eine Ausgabe byte-identisch zur unversehrten Datei, und unsere ist byte-identisch zu dem, was rar r selbst schreibt. Bester von drei, 32-Kern-Desktop, beide Werkzeuge am 2. August gemeinsam erneut angetreten.

16 MB32 MB128 MB512 MB2 GB
nzbfast0,0490,0590,1300,4001,527
rar 7.23 repair0,2780,4661,0652,2916,400
Vorsprung5,7×7,9×8,2×5,7×4,2×

Eine frühere Version dieser Seite zeigte die 512-MB-Größe als Verlust und erklärte das als Preis dafür, das Volume in Teilen zu durchlaufen, statt alles im Speicher zu halten. Diese Erklärung war zu jener Zeit richtig und ist jetzt überholt: die Kosten waren eine bit-serielle CRC64 im Reparaturpfad, ersetzt durch eine tabellengesteuerte, und der Verlust verschwand mit ihr. Es gibt keinen Umschlagpunkt mehr, und die begrenzte Arbeitsmenge blieb erhalten. Die 2-GB-Größe steht hier, weil die Volumes, denen ein Daemon tatsächlich begegnet, 8 GB bis 20 GB sind, nicht 512 MB, und eine Etappe, die unterhalb des echten Bereichs endet, ist nicht viel von einem Test.

Was diesen Schnitt bewegt hat, und die Kontrolle, die das belegt. Herauszufinden, welche Blöcke beschädigt sind, war zur größten Phase dieser Reparatur geworden - größer als die Reparaturarithmetik selbst -, und sie lief auf einem einzigen Thread, 64 KB aus jeder Gruppe über die ganze Datei hinweg lesend, einmal je Gruppe. Sie macht jetzt einen einzigen sequenziellen Durchgang in Dateireihenfolge, mit den Prüfsummen je Shard parallel berechnet, und das reparierte Volume wird geklont statt kopiert, wo das Dateisystem das kann. Die Erkennung allein fiel von etwa 300 ms auf 18 ms beim 512-MB-Archiv, was das meiste von dem ist, was sich oben bewegt hat. Die Kontrolle ist die Spalte neben unserer: rar r trat in denselben Runden auf derselben Maschine erneut an und kam innerhalb weniger Prozent seiner vorigen Zeiten zurück, die Änderung im Abstand liegt also an uns, nicht an der Messbank.

Der M5 Max wiederholt das Muster, angetreten am 31. Juli mit demselben Korpus und denselben Prüfungen: 0,050 / 0,066 / 0,171 / 0,581 s gegen rar rs 0,211 / 0,335 / 0,751 / 1,735 über die Größen von 16 MB bis 512 MB - 3,0× bis 5,1× schneller; die 2-GB-Größe trat auf dieser Maschine nicht an. Diese Zahlen stammen von vor der oben beschriebenen Erkennungs-Überarbeitung, sie gehören also zum älteren Build und stehen hier als zweite Maschine, nicht als aktuelle Zahl.

Weavers rarpar fehlt allein in dieser Tabelle, und nicht aus Wahl: es implementiert diese Reparatur nicht. Gebeten, eines dieser Archive zu reparieren, antwortet es „embedded Rar5 recovery record detected ... this API restores standalone .rev recovery volumes only and does not consume embedded RR/protect data", und lässt die Datei beschädigt. Es erscheint in jedem anderen Vergleich auf dieser Seite: allen vier PAR2-Etappen oben, allen sieben Extraktionsformen davor, und der Wiederherstellungsvolume-Etappe direkt darunter, die genau der Job ist, den es zu tun behauptet - und den es gewinnt.

Wiederherstellungsvolumes: fehlende ganze .rev-Dateien rekonstruieren

Die andere Hälfte von RARs eigener Wiederherstellungsgeschichte, und bis zu dieser Runde der größte Verlust auf dieser Seite. Eine .rev-Datei ist ein eigenständiges Wiederherstellungsvolume: drei davon neben einem 21-Volume-Satz können jede beliebigen drei Volumes rekonstruieren, die nie ankamen. Korpus: 1 GiB gespeichert in 21 Volumes zu 50 MB mit rar rv3, dann Volumes 4, 11 und 19 gelöscht - drei verloren gegen drei Wiederherstellungsvolumes, der schlimmste Fall, den der Satz noch überleben kann. Bester von drei, jedes rekonstruierte Volume gegen das unversehrte geprüft.

Desktop, 32 KerneDesktop, 20 Kerne
nzbfast0,440,50
rar 7.23 rc0,460,58
rarpar restore-volumes0,480,61

Die 32-Kern-Zelle hier stand im letzten Schnitt dieser Seite bei 3,12 s gegen rar rcs 0,47, veröffentlicht als 6,6× langsamer und die schlechteste Zahl darauf. Die Ursache war die Erasure-Lösung, die bei etwa 48 MB/s an rekonstruierter Ausgabe lief, wo RARLabs Version 320 verwaltete; sie läuft jetzt auf derselben tabellengesteuerten Arithmetik wie der Rest des Wiederherstellungscodes, was eine siebenfache Verbesserung ist und den Verlust auf beiden Maschinen in einen Sieg verwandelt. Die Abstände betragen 3 % und 14 %, es ist also ein Sieg, den man schlicht nennt statt zur Schlagzeile macht, und der Grund, warum er überhaupt genannt wird, ist, dass der Verlust zuerst genannt wurde.

Diese Etappe existiert, weil Weavers rarpar genau das implementiert und darum bat, daran gemessen zu werden. Es gewann komfortabel, als wir es zum ersten Mal veröffentlichten, und wir veröffentlichten es damals aus diesem Grund.

Der Dateiabgleich war nie die Kostenstelle, was sich zu notieren lohnt, weil es der naheliegende Verdächtige war: Wiederherstellungsvolumes tragen keine Dateinamen, wir identifizieren also, welche Plätze überlebt haben, indem wir jedes Volume auf der Platte prüfsummen, statt dem zu vertrauen, wie sie heißen, und gegen einen unbeschädigten Satz, wo nur der Abgleich passiert, dauert der ganze Durchgang 0,18 s.

Was sich sonst noch bewegt hat, und wo es sich nicht zeigt. Zwei weitere Engine-Änderungen sind gelandet, die diese Korpora nicht sehen können, hier genannt, damit die Zahlen oben nicht als die ganze Geschichte gelesen werden: RAR5-Archive mit zehntausenden Mitgliedern lösen jedes Mitglied einmal auf, statt die Liste je Worker zu durchlaufen, das ist 3× weniger Prozessorzeit bei 40.000 Mitgliedern; und der RAR1.3-Bit-Reader arbeitet ein Wort auf einmal, das ist 2×. Keines erscheint oben, weil die Formen hier 400 Mitglieder haben und kein RAR1.3.

Was wir absichtlich nicht tun: wir erzeugen nie PAR2. Ein Downloader hat dazu keinen Grund, und ParPar besitzt diese Etappe. Wir kaufen auch bei beiden Engines Geschwindigkeit mit Speicher: die Extraktion erreicht Spitzen um 240 MB gegen unrars 41 MB, und die Prüfung um 126 MB gegen turbos 7 MB, weil das die Inline-Engines sind, die einen laufenden Download begleiten, statt eigenständige Einmal-Läufe zu sein. Die 128-MiB-Wörterbuch-Form ist das Schlimmste davon, bei etwa 304 MB gegen unrars 139 MB. Die schwerste Reparatur kostet jetzt auch Speicher: die schnellere Methode für 512 und mehr fehlende Blöcke arbeitet mit den residenten Wiederherstellungsdaten, sie darf also bis zu einem Viertel des Maschinenspeichers nutzen, gedeckelt bei 4 GB, und eine Maschine, die das nicht erübrigen kann, nimmt still die Low-Memory-Methode - dieselbe Arithmetik und dieselben Zeiten wie die mittleren Zeilen der PAR2-Tabelle, nur nicht das 3× bei der letzten. Wenn Sie den kleinstmöglichen residenten Speicher für einen eigenständigen Job wollen, gewinnen die dedizierten Werkzeuge diese Spalte immer noch.

Jede Zahl auf dieser Seite ist ein datierter Lauf mit genau erfasstem Befehl und Bedingungen, negative Ergebnisse und aufgegebene Ansätze eingeschlossen. Diese Seiten sind der veröffentlichte Datensatz, und sie werden ausgebaut, sobald weitere Runden landen.

Fähigkeiten, keine Mikro-Benchmarks

Was jeder Client kann

nzbfastSABnzbd 5NZBGet 26rustnzbWeaverUsenappNewsbin
pipelined NNTPjastandardmäßig ausneinja-⁷--
vollständige Prüfung während des Downloadsjeder BlockdanachSchnellprüfungdanachdanachdanachdanach
Entpacken während des Downloadsim Datenstrom, keine Volumes auf der PlatteDirect Unpack⁴Direct Unpack⁴lagert aus, entpackt dann⁵neinneinnein
Plattenbedarf für einen N-GB-Post~1×N~2×N~2×N~2×N~2×N~2×N~2×N
Vollständigkeits-Urteil vor dem DownloadblockgenauneinGesundheit %nein-⁷Artikelprüfungnein
begrenzter Speicher (nie Swap)budgetiertCache-Limit-EinstellungCache-Einstellungneinnein--
hebt sein eigenes Limit offener Dateien anja, beim Start-⁸-⁸-⁸-⁸-⁸-⁸
Datei jederzeit während des Downloads prüfenjaneinneinneinneinsequenziellnein
eingebauter Indexer + Poster-Wallja, ohne KeyneinneinneinneinSuch-UIGruppen-Browser
Sonarr/Radarr-Drop-inSAB-API + NewznabnativnativSAB-kompatible APINZBGet-kompatibles RPC⁷neinnein
Handy-Fernsteuerung (nzb360/LunaSea)jajajanein-⁷neinnein
automatisches Holen + Upgrades der Beobachtungslisteeingebautüber *arrüber *arrneinneinWatchdogRegeln
einzelnes eigenständiges BinaryjaApp-Bundles; Python unter Linuxjajaja.app.exe
Open SourceGPL⁶GPLGPLMITjakostenpflichtigkostenpflichtig
PlattformenMac/Win/Linux (x64 + ARM)/Docker/FlatpakMac/Win/Linux/Docker/NAS-PaketeMac/Win/Linux/Docker/NAS + eingebettetLinux/Win (Mac aus dem Quelltext)Mac-Binary; Quelltext anderswo⁷nur Macnur Win

⁴ Direct Unpack materialisiert die Volumes trotzdem zuerst: 2× Schreibvorgänge und 2× Platte. ⁵ rustnzb 1.4.5 liefert in der Runde vom 23. August 2026 jeden Testfall byte-korrekt, und seine dort gemessene Geräte-E/A beträgt etwa das 2,1-Fache der Nutzlast - es lagert die Volumes also aus und entpackt nach dem Download, statt im Datenstrom zu entpacken (siehe die Kostentabellen). Seine älteren Builds (1.3.4-1.3.9) lieferten verschleierte Volumes aus, die als „Fertig" markiert waren, ohne zu entpacken; dieser Fehler ist upstream in 1.4.5 behoben. ⁶ GPL-3.0-or-later. ⁷ Weaver 0.7.8, das neueste ausgelieferte Binary, Identität per Hash geprüft (die sha256 des veröffentlichten Release-Tarballs und die des Binarys darin stimmen beide mit dem überein, gegen das wir antreten); seine gemessenen Zeilen stammen aus der Kostenrunde vom 23. August, seine mit „-" markierten Fähigkeitszellen sind Merkmale, die wir nicht bewertet haben, statt bestätigter Abwesenheiten; es spricht ein NZBGet-kompatibles RPC, worüber unser Testrahmen es steuert, aber wir haben die Handy-Fernsteuerungen nicht dagegen ausprobiert. Usenapp/Newsbin sind kommerzielle Einzelplattform-Reader mit Downloader-Funktionen; sie stehen hier, weil danach gefragt wird, nicht weil sie beim Tempo mithalten.

⁸ macOS startet ein Programm mit einem Limit von 256 offenen Dateien, und ein voller Satz Verbindungen über mehrere Server hinweg kann das überschreiten. nzbfast hebt sein eigenes Limit beim Start unter macOS und Linux an: es fordert 65.536 an, geht schrittweise herunter, bis das System zustimmt, geht nie über das harte Limit des Systems hinaus, und macht mit dem weiter, was es hatte, wenn jeder Schritt abgelehnt wird. Windows hat kein Limit dieser Art je Prozess. Die anderen Spalten sind nicht bewertet, statt bestätigte Abwesenheiten: wir haben den Startup-Code keines anderen Clients gelesen. Es lohnt sich, das zu wissen, wegen der Art, wie es scheitert: ein Programm, dem mitten in einem Job die offenen Dateien ausgehen, verschwindet eher, als einen Fehler zu melden.

Transportbeweis · gemessen mit 1.2.2

Die Engine hält mit echten Leitungen mit

Frühere Schnitte dieser Seite trugen eine breitere Sammlung von Transport-Demonstrationen - Mehrleitungs-Sättigungsläufe, Pipelining-Gewinne je RTT, ein Gegendruck-Nachweis, Decode-Obergrenzen-Messungen - angetreten auf Builds, die v1.2.2 seither abgelöst hat. Nach der Regel dieser Seite werden sie zurückgezogen statt altern gelassen, und kehren zurück, sobald sie auf dem aktuellen Release neu geschnitten sind; die drei Behauptungen oben sind die, die bereits auf v1.2.2 neu gemessen wurden.

Stehende Regel: jede Leistungsbehauptung nennt die Bedingungen, unter denen sie lief, negative Ergebnisse und Irrwege eingeschlossen.