Neljä asiakasta, seitsemän skenaariota, identtinen laitteisto ja palveluntarjoajat, ajot lomitettuina niin että palveluntarjoajien vaihtelu kumoutuu. Mittari on aika käyttökelpoiseen tiedostoon: ladattu, varmistettu, purettu. Mukana myös ne osuudet, joissa emme voita.
Tällä sivulla
Menetelmä ensin
pipelining_requests=8 (se toimitetaan arvolla 1, eli liukuhihnoittamattomana; pelkkä tuo asetus vei sen 190 GB:n ajan 24m24s:stä 19m02s:iin), NZBGet sai ArticleCache/DirectWrite/DirectUnpack/ParQuick, rustnzb dokumentoidun määrityksensä.Skenaario 1 · puhdas, valtava
| nzbfast | NZBGet 26.2 | SABnzbd 5.0.4 | rustnzb 1.3.4 | |
|---|---|---|---|---|
| aika käyttökelpoiseen tiedostoon | 4m 33s | 7m 58s (+75%) | 19m 32s (+329%) | ei mitään¹ |
| GB langalla | 169.6 | 169.8 | 169.7 | 186.5 |
| huippu-RSS | 1.4 GB² | 1.5 GB | 1.8 GB | 0.6 GB |
¹ rustnzb sai tavujen siirron valmiiksi ajassa 5m 42s vedettyään 186.5 GB (10% enemmän langalla kuin kukaan), mutta ei jättänyt lainkaan purettua mediaa, sen kolmas peräkkäinen epäonnistunut kierros tällä julkaisulla. · ² nzbfastin muisti seuraa sen määritettyä budjettia, ei työtä: tämä kierros ajoi oletusarvoisen autobudjetin ja huipentui 1.4 GB:iin; tarkoituksella valtava 64 GB:n budjetti ostaa vain 4% (4m 22s), ja rajattuna 1 GB:iin sama 190 GB:n työ valmistuu yhä (katso vähämuistiporras alla). Aiemmalla itärannikon kierroksella (~2.4–3 Gbps -linja) sama skenaario ajoi 9m 00s vs. NZBGet +30% ja SABnzbd +111%. Ero pitää linjanopeuksien yli.
Skenaario 2 · ero kasvaa koon myötä
Yhden läpimenon myötä ei latauksen jälkeistä varmistus-/purkuvaihetta, joten mitä isompi työ, sitä pidemmälle edelle se laskeutuu. Saman koneen peräkkäiset ajot:
| Työ | nzbfast | NZBGet | SABnzbd |
|---|---|---|---|
| 7.4 GB REMUX (Eurooppa, 10 GbE) | 13.7 s | 17.3 s (+26%) | 19.0 s (+39%) |
| 35 GB peitelty 4K (Eurooppa) | 67 s | 108 s (+61%) | 285 s (+325%) |
| 87 GB 4K (itärannikko) | 272 s | 370 s (+36%) | 708 s (+160%) |
| 87 GB levyllä, jolla 97 GB vapaana (Eurooppa) | 3m 08s | ei voi ajaa² | ei voi ajaa² |
| 190.6 GB (itärannikko) | 9m 00s | 11m 43s (+30%) | 19m 02s (+111%) |
² Niiden huippujalanjälki (osat + purettu tuloste samanaikaisesti, ~156 GB) ylitti 97 GB:n vapaan tilan. Yhden läpimenon tarvitsee 1× sisällön koon: se puolittaa tarvitsemasi levyn, ei vain aikaa.
Skenaario 3 · peitelty julkaisu
| nzbfast | NZBGet | SABnzbd | rustnzb | |
|---|---|---|---|---|
| aika käyttökelpoiseen tiedostoon | 96 s | 153 s (+59%) | 259 s (+170%) | ei käyttökelpoista tiedostoa³ |
| huippu-RSS | 1.55 GB | 3.7 GB | 8.8 GB | 3.6 GB |
³ rustnzb latasi 119 s:ssa, merkitsi työn valmiiksi, ja toimitti raa'at peitellyt osat: ei uudelleennimeämistä, ei purkua. nzbfast purki peittelyn PAR2-metatiedoista ja purki virrassa, nolla takaisinluettua lohkoa.
Skenaario 4 · kolmen jono
| nzbfast | rustnzb | NZBGet | SABnzbd | |
|---|---|---|---|---|
| jonon seinäaika | 122 s | 136 s | 162 s | 277 s |
| linja jouten (<20 MB/s) | 2 s (2%) | 16 s (12%) | 0 s | 168 s (61%) |
Kolme muotoa samasta ongelmasta: nzbfastin loppupään limitys pitää linjan kiireisenä reunasta reunaan; NZBGet ei koskaan ole jouten mutta ajaa ~35% hitaammin purkaessaan samanaikaisesti; SABnzbd lataa nopeasti, jättää sitten linjan pimeäksi 61% ajasta peräkkäisen jälkikäsittelyn aikana. Sitkeysvariantissa (yksi työ salatuilla RAR-otsakkeilla), SABnzbdin jono juuttui salattuun työhön ja vain 1 kolmesta työstä koskaan valmistui; nzbfast pysäköi sen selkeällä viestillä ja sai loput valmiiksi.
Rehellinen sarake
Molemmat tässä olleet osuudet on mitattu uudelleen julkaistulla versiolla, eikä kumpikaan ole enää häviö: vaurioitunut store-mode-postaus vie meiltä nyt 30 s NZBGetin 38 s vastaan, ja pelkästä pariteetista rakentaminen valmistuu 9 sekunnissa entisen 19 sijaan, osuudella jossa NZBGet palaa samassa ajassa mutta ei toimita mitään. Jätämme osion paikalleen sen sijaan että poistaisimme sen: tänne häviömme tulevat, ja seuraava kierros joka löytää sellaisen palauttaa sen tähän.
Skenaario 6 · näännytä se RAM:ista
Samat neljä työtä, ajettu uudelleen kovilla muistibudjeteilla 2 GB, 1 GB ja 256 MB: se, minkä automitoittaja valitsisi 8 GB:n koneella, 4 GB:n koneella ja 2 GB:n NAS:illa. Jokainen osuus tuotti oikean, täysin varmistetun, puretun tiedoston; huippu-RSS seurasi budjettia, ei työtä. Aika käyttökelpoiseen tiedostoon, 10 GbE -linja:
| Työn koko | runsaasti RAM:ia | 2 GB budjetti | 1 GB budjetti | 256 MB budjetti |
|---|---|---|---|---|
| 7 GB | 15 s | 15 s | 15 s | 15 s |
| 35 GB | 65 s | 70 s | 70 s | 65 s |
| 87 GB | 148 s | 206 s | 196 s | 180 s |
| 190 GB | 330 s | 427 s | 402 s | 411 s |
20–40%:n lisä isoissa töissä on 10 GbE -artefakti: levylle valuneet lohkot maksavat aikaa vain, kun linja juoksee levyn karkuun. Sama 87 GB:n työ samoilla budjeteilla ~2.4 Gbps -linjalla mittasi −1%…+7%, kohinaa. Tyypillisellä kotiyhteydellä pieni budjetti on lähes ilmainen missä tahansa työn koossa. NAS-profiili (2 yhteyttä, 256 MB budjetti) sai 35 GB:n työn valmiiksi 0.4 GB:n huippu- RSS:ssä. 2 GB:n NAS voi ajaa tämän. Mikään muu asiakas ei tarjoa muistikattoa lainkaan.
Skenaario 7 · arkistoja arkistojen sisällä
Julkaisut saapuvat yhä useammin sisäkkäisinä: RAR RARin sisällä, 7z sujautettuna store-arkistoon, kerrosten tikkaat, salasanaketju. Tämä kierros arvostelee sen, mitä käyttäjälle jää tehtäväksi. auto tarkoittaa, että jokainen hyötykuorma on purettu, tavuidenttinen, käsin koskematta; käsin tarkoittaa, että asiakas ilmoitti onnistumisesta mutta jätti sisemmän arkiston tulostehakemistoon sinun itsesi avattavaksi.
| muoto | nzbfast | SABnzbd | NZBGet | rustnzb |
|---|---|---|---|---|
| store-RAR store-RARin sisällä | auto | auto | käsin | käsin |
| pakattu RAR store-RARin sisällä | auto | auto | käsin | käsin |
| 7z store-RARin sisällä | auto | auto | käsin | käsin |
| 5 tason tikkaat, 6 hyötykuormaa | auto · 6/6 | käsin · 3/6 | käsin · 1/6 | käsin · 1/6 |
| salasanaketju, 3 salattua tasoa | auto · 3/3 | kysyy salasanaa | kysyy salasanaa | epäonnistui |
| automaattisesti valmiiksi, kaikki kymmenen muotoa | 8/10 | 6/10 | 2/10 | 2/10 |
Loopback-testipenkki, koneellisesti tuotettu korpus, kaikki neljä asiakasta samalla koneella, arvostelu sisältötiivisteen perusteella, joten hyötykuorman uudelleen nimeävä asiakas saa silti pisteet. Koska sisemmät kerrokset puretaan sisäkkäisyydestään lennossa, nzbfast pitää levyllä yhden ~1.5 GB:n kopion siinä missä kirjoita-ja-pura-asiakkaat pitävät ~3 GB, ja valmistuu näissä osuuksissa 1–2 s:ssa 4–8 s:a vastaan. Salasanaketjussa kunkin kerroksen salasana kulkee tiedostossa, jonka sitä ylempi kerros purkaa: nzbfast lukee sen ja avaa kaikki kolme tasoa; muut pysähtyvät odottamaan, että kirjoitat sen. Ne kaksi muotoa, joita se ei saa automaattisesti valmiiksi, arvostellaan tahallaan ankarasti: oletussyvyysrajan ylittävät 10 tason tikkaat ja julkaisu, joka on vioittunut kaikilla kolmella tasolla. Molemmissa se palauttaa enemmän hyötykuormia kuin yksikään muu asiakas, mutta poistuu nollasta poikkeavalla koodilla sen sijaan, että kutsuisi osittaista työtä onnistumiseksi, joten molemmat lasketaan tässä epäonnistumisiksi.
Komponenttien kaksintaistelut
Purku ja PAR2 ovat omaa natiivikoodiamme, joten kilpailutamme ne myös itsenäisinä kenttää vastaan identtisillä korpuksilla. Aika lasketaan vain, kun tuloste on tavuidenttinen lähdehyötykuorman kanssa.
unrar 7.23:a, 7-Zipiä, bsdtaria, unaria ja alkuperäistä rars-cratea vastaan Apple M3 Ultralla nzbfastin purkaja voittaa tai tasaa jokaisen muodon: 400 pientä tiedostoa 0.13 s unrarin 0.66 s:a vastaan, solid 0.50 vs. 0.87, salattu 0.49 vs. 0.82, RAR7-arkisto 128 MB:n sanakirjalla 0.71 vs. 0.92. Uudelleen ajettuna 20-ytimisellä M1 Ultralla ja 14-ytimisellä Intel-kannettavalla tulos pitää jokaisessa muodossa, ja kannettavalla marginaalit levenevät: rinnakkaiset dekoodauspolut skaalautuvat lisäsäikeisiin. Jokainen raportoitu aika tuotti sha256-identtisen tulosteen.
Klassista par2cmdlinea, SIMD-haaraa par2cmdline-turboa ja MultiParia vastaan nzbfastilla on nopein varmistus ja nopein korjaus jokaisella benchatulla koneella. 20-ytiminen pöytäkone: puhdas varmistus 0.40 s turbon 1.08:aa ja klassisen 3.67:ää vastaan; 101 vioittuneen lohkon korjaus 1.26 s vs. 2.61 ja 7.52. 14-ytiminen kannettava: varmistus 1.26 vs. 1.48, korjaus 2.57 vs. 3.62. Jokainen korjattu tiedosto tavuidenttinen. Yksi rehellinen huomio: emme luo PAR2:ta (lataaja ei sitä tarvitse, ja ParPar omistaa sen osuuden).
Mitä työ maksaa
Lupaus yhdestä ajosta koskee levyä yhtä lailla kuin nopeutta, joten tässä se on mitattuna eikä väitettynä: korkein taso, jonka työhakemisto saavutti sisäkkäisten ajojen aikana, näytteistettynä kahdesti sekunnissa. Kertaluku lopussa ei kertoisi mitään, koska asiakas joka poistaa niteensä purkamisen jälkeen näyttäisi siltä ettei olisi koskaan kirjoittanut niitä.
| muoto | nzbfast | NZBGet 26.2 | rustnzb 1.3.4 | SABnzbd 5.0.4 |
|---|---|---|---|---|
| store-RAR store-RAR:in sisällä | 1538 | 1538 | 1774 | 3080 |
| pakattu sisäkerros | 1536 | 1536 | 1674 | 3102 |
| RAR RAR:in sisällä, syvyys 2 | 1536 | 1536 | 1714 | 3076 |
| 7z store-RAR:in sisällä | 1503 | 1536 | 1722 | 3102 |
Megatavuja, pienempi on parempi. NZBGet on tässä tasoissamme, ja syy kannattaa kertoa: se ajaa DirectUnpack ja DirectWrite päällä, kuten säädämme jokaisen kilpailijan, ja näillä muodoilla se riittää yhteen kopioon levyllä. SABnzbd pitää kahta. Jäljelle jäävä ero on se, jota varten putki rakennettiin: emme materialisoi niteitä lainkaan, joten huippu on itse hyötykuorma eikä hyötykuorma plus sitä kantanut arkisto.
Kyvykkyys, ei mikrovertailut
| nzbfast | SABnzbd 5 | NZBGet 26 | rustnzb | Usenapp | Newsbin | |
|---|---|---|---|---|---|---|
| liukuhihnoitettu NNTP | kyllä | oletuksena pois | ei | kyllä | - | - |
| täysi varmistus latauksen aikana | joka lohko | jälkeen | pikatarkistus | jälkeen | jälkeen | jälkeen |
| purku latauksen aikana | virrassa, ei osia levyllä | suora purku⁴ | suora purku⁴ | epäluotettava⁵ | ei | ei |
| levy tarvittu N-GB:n julkaisulle | ~1×N | ~2×N | ~2×N | ~2×N | ~2×N | ~2×N |
| valmistumistuomio ennen latausta | lohkotarkka | ei | terveys-% | ei | artikkelitarkistus | ei |
| rajattu muisti (ei koskaan sivutusta) | budjetoitu | 9.3 GB @ 190 GB | välimuistiasetus | ei | - | - |
| tarkista tiedosto missä tahansa kohdassa latauksen aikana | kyllä | ei | ei | ei | peräkkäinen | ei |
| sisäänrakennettu indeksoija + julisteseinä | kyllä, avaimeton | ei | ei | ei | hakukäyttöliittymä | ryhmäselain |
| Sonarr/Radarr valmis | SAB API + Newznab | natiivi | natiivi | osittainen | ei | ei |
| puhelinkaukosäätimet (nzb360/LunaSea) | NZBGet RPC:n kautta | kyllä | kyllä | ei | ei | ei |
| seurantalistan automaattinappaus + päivitykset | sisäänrakennettu | *arrin kautta | *arrin kautta | ei | Watchdog | säännöt |
| yksi itsenäinen binääri | kyllä | Python | kyllä | kyllä | .app | .exe |
| avoin lähdekoodi | GPL⁶ | GPL | GPL | kyllä | maksullinen | maksullinen |
| alustat | mac/win/linux/docker | mac/win/linux | mac/win/linux | linux/win | vain mac | vain win |
⁴ Suora purku kirjoittaa osat silti ensin levylle: 2× kirjoitusta ja 2× levyä. ⁵ rustnzb toimitti peiteltyjä osia merkittynä ”valmiiksi” kierroksellamme (sen purku myös jumittuu RARLab unrarin kanssa, ellei sitä poisteta käytöstä). ⁶ GPL-3.0-or-later. Usenapp/Newsbin ovat yhden alustan kaupallisia lukijoita lataajaominaisuuksin; ne ovat listattuina koska ihmiset kysyvät, ei koska ne kilpailisivat nopeudessa.
Siirtotodistus