Ytelsestester

Fire klienter, sju scenarioer, identisk maskinvare og leverandører, kjøringer flettet så leverandørdrift kanselleres. Målingen er tid til en brukbar fil: lastet ned, verifisert, utpakket. Inkluderer de etappene vi ikke vinner.

På denne siden

Metode først

Oppsettet

Scenario 1 · ren, enorm

190.6 GB → én enkelt 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 til brukbar fil4m 33s7m 58s (+75%)19m 32s (+329%)ingen¹
GB på tråden169.6169.8169.7186.5
topp-RSS1.4 GB²1.5 GB1.8 GB0.6 GB

¹ rustnzb ble ferdig med å flytte bytes på 5m 42s etter å ha dratt 186.5 GB (10 % mer tråd enn noen andre), men etterlot ingen utpakkede medier, dens tredje mislykkede runde på rad på denne posten. · ² nzbfasts minne følger sitt konfigurerte budsjett, ikke jobben: denne runden kjørte det standard auto-budsjettet og toppet på 1.4 GB; et bevisst enormt 64 GB-budsjett kjøper bare 4 % (4m 22s), og avgrenset til 1 GB fullføres den samme 190 GB-jobben fortsatt (se lav-minne-stigen nedenfor). På den tidligere østkysten-runden (~2,4–3 Gbps-linje) kjørte det samme scenarioet 9m 00s vs. NZBGet +30 % og SABnzbd +111 %. Gapet holder på tvers av linjefarter.

Scenario 2 · gapet vokser med størrelsen

Tid til brukbar fil, etter jobbstørrelse

Én omgang betyr ingen verifiserings-/utpakkingsrunde etter nedlasting, så jo større jobben er, desto lengre foran lander den. Sekvensielle kjøringer på samme maskin:

JobbnzbfastNZBGetSABnzbd
7.4 GB REMUX (Europa, 10 GbE)13.7 s17.3 s (+26%)19.0 s (+39%)
35 GB obfuskert 4K (Europa)67 s108 s (+61%)285 s (+325%)
87 GB 4K (østkysten)272 s370 s (+36%)708 s (+160%)
87 GB på en disk med 97 GB ledig (Europa)3m 08skan ikke kjøre²kan ikke kjøre²
190.6 GB (østkysten)9m 00s11m 43s (+30%)19m 02s (+111%)

² Deres topp-fotavtrykk (volumer + utpakkede utdata samtidig, ~156 GB) oversteg de 97 GB ledige. Én omgang trenger 1× innholdsstørrelsen: den halverer disken du trenger, ikke bare tiden.

Scenario 3 · obfuskert post

35 GB hash-navngitt 4K → brukbar mkv (østkysten)

nzbfastNZBGetSABnzbdrustnzb
tid til brukbar fil96 s153 s (+59%)259 s (+170%)ingen brukbar fil³
topp-RSS1.55 GB3.7 GB8.8 GB3.6 GB

³ rustnzb lastet ned på 119 s, merket jobben Completed, og leverte de rå obfuskerte volumene: ingen omdøping, ingen utpakking. nzbfast deobfuskerte fra PAR2-metadata og pakket ut i strømmen, null innleste blokker.

Scenario 4 · kø på tre

Å holde linjen tent gjennom en kø (østkysten, ~43 GB)

nzbfastrustnzbNZBGetSABnzbd
kø-veggtid122 s136 s162 s277 s
linje inaktiv (<20 MB/s)2 s (2%)16 s (12%)0 s168 s (61%)

Tre former av det samme problemet: nzbfasts hale-overlapp holder linjen opptatt fra kant til kant; NZBGet står aldri ledig, men kjører ~35 % tregere mens den pakker ut samtidig; SABnzbd laster ned raskt, og lar så linjen ligge mørk 61 % av tiden under seriell etterbehandling. I robusthetsvarianten (én jobb med krypterte RAR-headere), kilte SABnzbds kø seg fast på den krypterte jobben, og bare 1 av 3 jobber ble noen gang fullført; nzbfast parkerte den med en tydelig melding og gjorde ferdig resten.

Den ærlige spalten

De etappene vi ikke vinner

Begge testene som stod her er målt på nytt på den utgitte builden, og ingen av dem er lenger et tap: den skadede store-mode-posten tar oss nå 30 s mot NZBGets 38 s, og rekonstruksjon bare fra paritet er ferdig på 9 s der den tok 19 s, på en test der NZBGet kommer tilbake på samme tid, men ikke leverer noe. Vi lar seksjonen bli stående i stedet for å slette den: det er hit tapene våre går, og neste runde som finner ett, setter det tilbake.

Hvorfor vise et tap i det hele tatt? Fordi seirene bare er troverdige ved siden av det. Hvert tall på denne siden kommer fra de samme flettede kjøringene, og en test vi taper blir stående publisert til en ny kjøring erstatter den.

Scenario 6 · sult den på RAM

Lav-minne-stigen: 190 GB på ~1.1 GB RAM

De samme fire jobbene, kjørt på nytt ved harde minnebudsjetter på 2 GB, 1 GB og 256 MB: det auto-dimensjoneringen ville valgt på en 8 GB-maskin, en 4 GB-maskin og en 2 GB NAS. Hver etappe produserte en korrekt, fullstendig verifisert, utpakket fil; topp-RSS fulgte budsjettet, ikke jobben. Tid til brukbar fil, 10 GbE-linje:

Jobbstørrelserikelig med RAM2 GB-budsjett1 GB-budsjett256 MB-budsjett
7 GB15 s15 s15 s15 s
35 GB65 s70 s70 s65 s
87 GB148 s206 s196 s180 s
190 GB330 s427 s402 s411 s

De 20–40 % ekstra på de store jobbene er et 10 GbE-artefakt: spilte blokker koster bare tid når linjen er raskere enn disken. Den samme 87 GB-jobben ved de samme budsjettene på en ~2,4 Gbps-linje målte −1 % til +7 %, støy. På en typisk hjemmetilkobling er et lite budsjett nær gratis ved enhver jobbstørrelse. En NAS-profil (2 tilkoblinger, 256 MB-budsjett) gjorde ferdig 35 GB-jobben på 0.4 GB topp- RSS. En 2 GB NAS kan kjøre dette. Ingen annen klient tilbyr et minnetak i det hele tatt.

Scenario 7 · arkiver inni arkiver

Ti nøstede former: hvem blir ferdig uten deg

Poster ankommer i økende grad nøstet: en RAR inni en RAR, en 7z stukket inn i et store-arkiv, en stige av lag, en passordkjede. Denne runden bedømmer hva som er igjen til operatøren. auto betyr hver nyttelast pakket ut, byte-identisk, uten hender; manuelt betyr at klienten meldte suksess, men etterlot et indre arkiv stående i utdatamappen som du selv må åpne.

formnzbfastSABnzbdNZBGetrustnzb
store-RAR inni store-RARautoautomanueltmanuelt
komprimert RAR inni store-RARautoautomanueltmanuelt
7z inni en store-RARautoautomanueltmanuelt
5-nivåers stige, 6 nyttelasterauto · 6/6manuelt · 3/6manuelt · 1/6manuelt · 1/6
passordkjede, 3 krypterte nivåerauto · 3/3ber om et passordber om et passordfeilet
auto-fullført, alle ti formene8/106/102/102/10

Loopback-rigg, maskingenerert korpus, alle fire klientene på samme maskin, bedømt etter innholdshash, så en klient som gir nyttelasten nytt navn får fortsatt uttelling. Fordi indre lag avnøstes i farten, holder nzbfast én ~1.5 GB-kopi på disk der skriv-ut-og-pakk-ut-klienter holder ~3 GB, og blir ferdig med disse etappene på 1–2 s mot 4–8 s. På passordkjeden leveres hvert lags passord i en fil som laget over pakker ut: nzbfast leser den og låser opp alle tre nivåene; de andre stopper og venter på at du skal taste det inn. De to formene den ikke auto-fullfører bedømmes hardt med vilje: en 10-nivåers stige forbi dens standard dybdegrense og en post skadet på alle tre nivåene. På begge gjenvinner den flere nyttelaster enn noen annen klient, men avslutter med en kode ulik null i stedet for å kalle en delvis jobb en suksess, så begge teller som feil her.

Komponentdueller

Utpakkings- og reparasjonsmotorene, i solokappløp

Utpakking og PAR2 er vår egen native kode, så vi kjører dem også frittstående mot feltet på identiske korpus. En tid teller bare når utdataen er byte-identisk med kildenyttelasten.

RAR-utpakking · 8 arkivformer

Mot unrar 7.23, 7-Zip, bsdtar, unar og oppstrøms rars-craten på en Apple M3 Ultra vinner eller deler nzbfasts utpakker hver form: 400 små filer 0.13 s mot unrars 0.66 s, solid 0.50 mot 0.87, kryptert 0.49 mot 0.82, et RAR7-arkiv med 128 MB-ordbok 0.71 mot 0.92. Kjørt på nytt på en 20-kjerners M1 Ultra og på en 14-kjerners Intel-laptop holder resultatet på hver form, og på laptopen blir marginene bredere: de parallelle dekodingsstiene skalerer inn i de ekstra trådene. Hver rapportert tid ga sha256-identisk utdata.

PAR2-verifisering + reparasjon · 1 GiB-sett

Mot klassisk par2cmdline, SIMD-forken par2cmdline-turbo og MultiPar har nzbfast den raskeste verifiseringen og den raskeste reparasjonen på hver maskin som er benchet. 20-kjerners desktop: ren verifisering 0.40 s mot turboens 1.08 og klassikerens 3.67; reparasjon av 101 skadede blokker 1.26 s mot 2.61 og 7.52. 14-kjerners laptop: verifisering 1.26 mot 1.48, reparasjon 2.57 mot 3.62. Hver reparert fil byte-identisk. En ærlig merknad: vi lager ikke PAR2 (en nedlaster trenger ikke det, og ParPar eier den etappen).

Hva en jobb koster

Topp diskbruk for 1,5 GB nyttelast

Løftet om én gjennomgang handler like mye om disk som om fart, så her er det målt i stedet for påstått: det høyeste arbeidskatalogen nådde under de nøstede kjøringene, avlest to ganger i sekundet. Én avlesning til slutt ville ikke si noe, for en klient som sletter volumene sine etter utpakking ville se ut som om den aldri hadde skrevet dem.

formnzbfastNZBGet 26.2rustnzb 1.3.4SABnzbd 5.0.4
store-RAR i store-RAR1538153817743080
komprimert indre lag1536153616743102
RAR i RAR, dybde 21536153617143076
7z pakket i en store-RAR1503153617223102

Megabyte, lavere er bedre. NZBGet er på høyde med oss her, og det er verdt å si hvorfor: den kjører med DirectUnpack og DirectWrite på, slik vi setter opp enhver konkurrent, og på disse formene holder det til én kopi på disken. SABnzbd holder to. Forskjellen som står igjen er den pipelinen ble bygget for: vi materialiserer aldri volumene, så toppen er nyttelasten selv i stedet for nyttelasten pluss arkivet som bar den.

Kapabilitet, ikke mikro-benchmarker

Hva hver klient kan gjøre

nzbfastSABnzbd 5NZBGet 26rustnzbUsenappNewsbin
pipelinet NNTPjaav som standardneija--
full verifisering under nedlastinghver blokketterpåhurtigsjekketterpåetterpåetterpå
utpakking under nedlastingi strømmen, ingen volumer på diskdirekte utpakking⁴direkte utpakking⁴upålitelig⁵neinei
disk nødvendig for en N-GB-post~1×N~2×N~2×N~2×N~2×N~2×N
fullførbarhetsdom før nedlastingblokk-eksaktneihelse %neiartikkelsjekknei
avgrenset minne (swapper aldri)budsjettert9.3 GB @ 190 GBcache-innstillingnei--
sjekk filen på et hvilket som helst punkt mens du laster nedjaneineineisekvensiellnei
innebygd indekserer + plakatveggja, nøkkelfrineineineisøkegrensesnittgruppebrowser
Sonarr/Radarr klar-til-brukSAB API + Newznabnativenativedelvisneinei
telefonfjernkontroller (nzb360/LunaSea)via NZBGet RPCjajaneineinei
watchlist auto-henting + oppgraderingerinnebygdvia *arrvia *arrneiWatchdogregler
én enkelt selvstendig binærjaPythonjaja.app.exe
åpen kildekodeGPL⁶GPLGPLjabetaltbetalt
plattformermac/win/linux/dockermac/win/linuxmac/win/linuxlinux/winkun mackun win

⁴ Direkte utpakking materialiserer fortsatt volumene først: 2× skrivinger og 2× disk. ⁵ rustnzb leverte obfuskerte volumer merket «Completed» i vår runde (utpakkingen dens henger også med RARLab unrar med mindre den deaktiveres). ⁶ GPL-3.0-or-later. Usenapp/Newsbin er enkeltplattform-kommersielle lesere med nedlasterfunksjoner; de er oppført fordi folk spør, ikke fordi de konkurrerer på fart.

Transportbevis

Motoren metter ekte linjer

Stående regel: hvert ytelsesutsagn oppgir betingelsene det kjørte under, negative resultater og feilspor inkludert.