Benchmarks

Fyra klienter, sju scenarier, identisk hårdvara och providers, körningar sammanflätade så att providerdrift tar ut sig. Måttet är tid till en användbar fil: nedladdad, verifierad, uppackad. Inklusive de etapper vi inte vinner.

På den här sidan

Metodik först

Uppställningen

Scenario 1 · ren, enorm

190.6 GB → en enda 167.9 GB mkv (Europa, 10 GbE)

nzbfast4m 33s
NZBGet 26.27m 58s · +75%
SABnzbd 5.0.419m 32s · +329%
rustnzb 1.3.4ingen utdata¹
nzbfastNZBGet 26.2SABnzbd 5.0.4rustnzb 1.3.4
tid till användbar fil4m 33s7m 58s (+75%)19m 32s (+329%)ingen¹
GB på tråden169.6169.8169.7186.5
toppar-RSS1.4 GB²1.5 GB1.8 GB0.6 GB

¹ rustnzb blev klar med att flytta bytes vid 5m 42s efter att ha dragit 186.5 GB (10 % mer tråd än någon annan) men lämnade ingen uppackad media, dess tredje raka misslyckade omgång på det här inlägget. · ² nzbfasts minne följer dess konfigurerade budget, inte jobbet: den här omgången körde standard-autobudgeten och toppade på 1.4 GB; en avsiktligt enorm 64 GB-budget köper bara 4 % (4m 22s), och begränsad till 1 GB blir samma 190 GB-jobb fortfarande klart (se lågminnesstegen nedan). På den tidigare östkusten-omgången (~2.4–3 Gbps-linje) körde samma scenario 9m 00s vs NZBGet +30 % och SABnzbd +111 %. Glappet håller över olika linjehastigheter.

Scenario 2 · glappet växer med storleken

Tid till användbar fil, per jobbstorlek

Enpass betyder inget verifierings-/uppackningspass efter nedladdning, så ju större jobb, desto längre fram landar det. Sekventiella körningar på samma maskin:

JobbnzbfastNZBGetSABnzbd
7.4 GB REMUX (Europa, 10 GbE)13.7 s17.3 s (+26%)19.0 s (+39%)
35 GB obfuskerad 4K (Europa)67 s108 s (+61%)285 s (+325%)
87 GB 4K (östkusten)272 s370 s (+36%)708 s (+160%)
87 GB på en disk med 97 GB ledigt (Europa)3m 08skan inte köra²kan inte köra²
190.6 GB (östkusten)9m 00s11m 43s (+30%)19m 02s (+111%)

² Deras toppfotavtryck (volymer + uppackad utdata samtidigt, ~156 GB) översteg de 97 GB lediga. Enpass behöver 1× innehållsstorleken: det halverar disken du behöver, inte bara tiden.

Scenario 3 · obfuskerat inlägg

35 GB hashnamnad 4K → användbar mkv (östkusten)

nzbfastNZBGetSABnzbdrustnzb
tid till användbar fil96 s153 s (+59%)259 s (+170%)ingen användbar fil³
toppar-RSS1.55 GB3.7 GB8.8 GB3.6 GB

³ rustnzb laddade ner på 119 s, markerade jobbet Completed, och levererade de råa obfuskerade volymerna: ingen omdöpning, ingen uppackning. nzbfast deobfuskerade från PAR2-metadata och packade upp i strömmen, noll återlästa block.

Scenario 4 · kö av tre

Att hålla linjen tänd genom en kö (östkusten, ~43 GB)

nzbfastrustnzbNZBGetSABnzbd
tid att beta av kön122 s136 s162 s277 s
linje i vila (<20 MB/s)2 s (2%)16 s (12%)0 s168 s (61%)

Tre former av samma problem: nzbfasts svansöverlappning håller linjen upptagen kant till kant; NZBGet vilar aldrig men kör ~35 % långsammare medan den packar upp samtidigt; SABnzbd laddar ner snabbt, och lämnar sedan linjen mörk 61 % av tiden under seriell efterbehandling. I motståndskraftsvarianten (ett jobb med krypterade RAR-headers) fastnade SABnzbds kö på det krypterade jobbet och bara 1 av 3 jobb blev någonsin klart; nzbfast parkerade det med ett tydligt meddelande och slutförde resten.

Den ärliga kolumnen

De etapper vi inte vinner

Båda grenarna som stod här har mätts om på det levererade bygget och ingen är längre en förlust: den skadade store-mode-posten tar oss nu 30 s mot NZBGets 38 s, och rekonstruktion enbart ur paritet är klar på 9 s där den tog 19 s, på en gren där NZBGet återkommer på samma tid men levererar ingenting. Vi låter avsnittet stå kvar i stället för att radera det: det är hit våra förluster går, och nästa omgång som hittar en sätter tillbaka den.

Varför visa en förlust över huvud taget? För att vinsterna bara är trovärdiga bredvid den. Varje siffra på den här sidan kommer från samma sammanflätade körningar, och en gren vi förlorar står kvar publicerad tills en ny körning ersätter den.

Scenario 6 · svält den på RAM

Lågminnesstegen: 190 GB i ~1.1 GB RAM

Samma fyra jobb, omkörda vid hårda minnesbudgetar på 2 GB, 1 GB och 256 MB: vad auto-dimensioneraren skulle välja på en 8 GB-maskin, en 4 GB-maskin och en 2 GB NAS. Varje etapp gav en korrekt, fullt verifierad, uppackad fil; toppar-RSS följde budgeten, inte jobbet. Tid till användbar fil, 10 GbE-linje:

Jobbstorlekgott om RAM2 GB budget1 GB budget256 MB budget
7 GB15 s15 s15 s15 s
35 GB65 s70 s70 s65 s
87 GB148 s206 s196 s180 s
190 GB330 s427 s402 s411 s

Premien på 20–40 % på de stora jobben är en 10 GbE-artefakt: spillda block kostar bara tid när linjen springer om disken. Samma 87 GB-jobb vid samma budgetar på en ~2.4 Gbps-linje mätte −1 % till +7 %, brus. På en typisk hemuppkoppling är en liten budget nära gratis vid vilken jobbstorlek som helst. En NAS-profil (2 anslutningar, 256 MB budget) blev klar med 35 GB-jobbet i 0.4 GB toppar- RSS. En 2 GB NAS kan köra detta. Ingen annan klient erbjuder ett minnestak överhuvudtaget.

Scenario 7 · arkiv inuti arkiv

Tio nästlade former: vem blir klar utan dig

Inlägg anländer allt oftare nästlade: en RAR inuti en RAR, en 7z instoppad i ett store-arkiv, en stege av lager, en lösenordskedja. Den här omgången betygsätter vad som blir kvar åt operatören. auto betyder varje nyttolast uppackad, byte-identisk, utan händer; manuellt betyder att klienten rapporterade framgång men lämnade ett inre arkiv stående i utdatakatalogen åt dig att öppna själv.

formnzbfastSABnzbdNZBGetrustnzb
store-RAR inuti store-RARautoautomanuelltmanuellt
komprimerad RAR inuti store-RARautoautomanuelltmanuellt
7z inuti en store-RARautoautomanuelltmanuellt
5-nivåers stege, 6 nyttolasterauto · 6/6manuellt · 3/6manuellt · 1/6manuellt · 1/6
lösenordskedja, 3 krypterade nivåerauto · 3/3ber om ett lösenordber om ett lösenordmisslyckades
automatiskt slutfört, alla tio former8/106/102/102/10

Loopback-rigg, maskingenererad korpus, alla fyra klienter på samma maskin, betygsatt via innehållshash, så en klient som döper om nyttolasten får ändå poäng. Eftersom inre lager avnästlas i farten håller nzbfast en enda ~1.5 GB-kopia på disk där skriv-ut-och-packa-upp-klienter håller ~3 GB, och blir klar med de här etapperna på 1–2 s mot 4–8 s. På lösenordskedjan skickas varje lagers lösenord i en fil som lagret ovanför packar upp: nzbfast läser den och låser upp alla tre nivåer; de andra stannar och väntar på att du ska skriva in det. De två former den inte klarar automatiskt betygsätts hårt med avsikt: en 10-nivåers stege bortom dess standarddjupgräns och ett inlägg skadat på alla tre nivåer. På båda återvinner den fler nyttolaster än någon annan klient, men avslutar med en kod skild från noll i stället för att kalla ett delvis jobb en framgång, så båda räknas som misslyckanden här.

Komponentdueller

Uppacknings- och reparationsmotorerna, i solokapplöpning

Uppackning och PAR2 är vår egen inbyggda kod, så vi tävlar också med dem fristående mot fältet på identiska korpusar. En tid räknas bara när utdatan är byte-identisk med källnyttolasten.

RAR-uppackning · 8 arkivformer

Mot unrar 7.23, 7-Zip, bsdtar, unar och uppströms rars-craten på en Apple M3 Ultra vinner eller delar nzbfasts uppackare varje form: 400 små filer 0.13 s mot unrars 0.66 s, solid 0.50 vs 0.87, krypterad 0.49 vs 0.82, ett RAR7-arkiv med 128 MB-ordbok 0.71 vs 0.92. Omkörd på en 20-kärnig M1 Ultra och på en 14-kärnig Intel-laptop håller resultatet på varje form, och på laptopen breddas marginalerna: de parallella avkodningsvägarna skalar in i de extra trådarna. Varje rapporterad tid gav sha256-identisk utdata.

PAR2 verifiering + reparation · 1 GiB-set

Mot klassiska par2cmdline, SIMD-forken par2cmdline-turbo och MultiPar har nzbfast den snabbaste verifieringen och den snabbaste reparationen på varje benchad maskin. 20-kärnig desktop: ren verifiering 0.40 s mot turbons 1.08 och klassikerns 3.67; reparation av 101 skadade block 1.26 s vs 2.61 och 7.52. 14-kärnig laptop: verifiering 1.26 vs 1.48, reparation 2.57 vs 3.62. Varje reparerad fil byte-identisk. En ärlig notering: vi skapar inte PAR2 (en nedladdare behöver inte det, och ParPar äger den etappen).

Vad ett jobb kostar

Toppdiskbehov för 1,5 GB nyttolast

Löftet om en enda genomgång handlar lika mycket om disk som om hastighet, så här är det mätt i stället för påstått: det högsta arbetskatalogen någonsin nådde under de nästlade körningarna, avläst två gånger i sekunden. Att läsa en gång på slutet skulle inte säga något, eftersom en klient som raderar sina volymer efter uppackning skulle se ut att aldrig ha skrivit dem.

formnzbfastNZBGet 26.2rustnzb 1.3.4SABnzbd 5.0.4
store-RAR i store-RAR1538153817743080
komprimerat inre lager1536153616743102
RAR i RAR, djup 21536153617143076
7z inlindad i en store-RAR1503153617223102

Megabyte, lägre är bättre. NZBGet går jämsides med oss här och det är värt att säga varför: den kör med DirectUnpack och DirectWrite på, vilket är hur vi ställer in varje konkurrent, och på de här formerna räcker det för en enda kopia på disk. SABnzbd håller två. Gapet som återstår är det pipelinen byggdes för: vi materialiserar aldrig volymerna, så toppen är nyttolasten själv i stället för nyttolasten plus arkivet som bar den.

Förmåga, inte mikrobenchmarks

Vad varje klient kan göra

nzbfastSABnzbd 5NZBGet 26rustnzbUsenappNewsbin
pipelinead NNTPjaav som standardnejja--
full verifiering under nedladdningvarje blockefteråtsnabbkollefteråtefteråtefteråt
uppackning under nedladdningi strömmen, inga volymer på diskdirektuppackning⁴direktuppackning⁴otillförlitlig⁵nejnej
disk som behövs för ett N-GB-inlägg~1×N~2×N~2×N~2×N~2×N~2×N
utlåtande om slutförbarhet före nedladdningblockexaktnejhälsa %nejartikelkollnej
begränsat minne (swappar aldrig)budgeterat9.3 GB @ 190 GBcache-inställningnej--
kontrollera filen på valfri punkt under nedladdningenjanejnejnejsekventiellnej
inbyggd indexerare + posterväggja, nyckellösnejnejnejsök-UIgruppbläddrare
Sonarr/Radarr drop-inSAB API + Newznabnativenativedelvisnejnej
telefonfjärrar (nzb360/LunaSea)via NZBGet RPCjajanejnejnej
bevakningslista auto-grab + uppgraderingarinbyggtvia *arrvia *arrnejWatchdogregler
en enda fristående binärjaPythonjaja.app.exe
öppen källkodGPL⁶GPLGPLjabetaldbetald
plattformarmac/win/linux/dockermac/win/linuxmac/win/linuxlinux/winendast macendast win

⁴ Direktuppackning materialiserar fortfarande volymerna först: 2× skrivningar och 2× disk. ⁵ rustnzb levererade obfuskerade volymer markerade "Completed" i vår omgång (dess uppackning hänger också med RARLab unrar om den inte inaktiveras). ⁶ GPL-3.0-or-later. Usenapp/Newsbin är enplattforms kommersiella läsare med nedladdningsfunktioner; de listas för att folk frågar, inte för att de konkurrerar på hastighet.

Transportbevis

Motorn mättar riktiga linjer

Stående regel: varje prestandapåstående anger de förhållanden det kördes under, negativa resultat och felsteg inräknade.