Selitykset · yksi
Suurin osa siitä mikä tekee tästä ohjelmasta nopean ei ole nopeampi verkkoreitti. Se on että data liikkuu vain kerran. Tässä kerrotaan mitä se käytännössä tarkoittaa, miksi se on eri asia kuin suora purku, mitkä arkistomuodot selviävät siitä, ja mitä kirjoita-ja-lue-takaisin-kierroksen poistaminen oikealla koneella todella on arvoltaan.
Lähtökohta
Postaus on tuhansia pieniä koodattuja artikkeleita, jotka yhdessä muodostavat joukon arkiston osia, jotka puolestaan sisältävät sen tiedoston jonka oikeasti haluat. Yhdestä toiseen pääseminen on perinteisesti ollut neljä erillistä työtä, joista kukin päättyy ennen kuin seuraava alkaa.
Jokainen vaihe on oikein, ja tulos on oikea. Mutta sisältö on kirjoitettu kahdesti, luettu vähintään kahdesti, ja huipussaan levyn oli mahduttava kaksi täydellistä kopiota työstä josta halusit vain yhden kopion. Kello jonka koet on kaikki neljä vaihetta peräkkäin, ja siksi ohjelma voi ilmoittaa nopeasta latauksesta ja silti pitää sinua odottamassa.
Muutos
Yksi läpimeno tarkoittaa että tavut kulkevat verkosta lopulliseen määränpäähänsä tulematta koskaan arkistotiedostoksi levyllesi. Vaihetta kaksi tai kolme ei ole, koska molempien työ tapahtuu vaiheen yksi vielä käydessä.
Käytännössä jokaisen artikkelin koodaus puretaan muistissa heti sen saapuessa ja se annetaan suoraan kahdelle asialle yhtä aikaa. Tarkistin vertaa sitä välittömästi pariteettidataan, joten oikeellisuus todetaan datan laskeutuessa eikä lukemalla se myöhemmin uudelleen. Purkaja käsittelee saapuvia tavuja sijaintina arkiston sisällä, laskee mihin osaan mitäkin sisältötiedostoa ne kuuluvat, ja kirjoittaa ne sinne.
Arkiston osia ei koskaan koota. Ne ovat olemassa rakenteena jonka purkaja ymmärtää latauksen ollessa lennossa, ja ainoa asia joka pääsee levyllesi on haluamasi tiedosto. Kun viimeinen artikkeli saapuu, tehtävää ei käytännössä ole jäljellä, ja siksi meidän loppuaikamme ovat lähellä itse latausaikaa eivätkä lataus plus häntä.
Mitattava seuraus: samaan työhön kirjoitamme noin puolet vähemmän, luemme takaisin paljon vähemmän, ja tarvitsemme suunnilleen sisällön oman koon verran vapaata tilaa kaksinkertaisen sijaan. 190 GB:n julkaisussa se on noin 157 GB vapaata tilaa vastaan noin 313 GB, ja suunnilleen kolmasosa levyliikenteestä.
Kaksi asiaa tekee tästä vaikeampaa kuin miltä kuulostaa, ja ne ovat syy siihen että tämä on harvinaista. Artikkelit eivät saavu järjestyksessä, joten purkajan on tultava toimeen mielivaltaisiin kohtiin laskeutuvien tavujen kanssa eikä alusta alkavan virran kanssa. Ja pakattua arkistoa ei voi purkaa keskeltä, joten jokainen työn osa joka aidosti vaatii järjestystä on tunnistettava ja käsiteltävä toisin eikä oletettava pois.
Vertailu jota kysytään
Suora purku on hyvä ominaisuus ja ne ohjelmat joilla se on ovat sen kanssa parempia. Se myös ratkaisee eri osan ongelmasta, ja ero näkyy juuri siellä missä sillä on merkitystä.
Suora purku alkaa purkaa ennen kuin lataus on päättynyt, joten vaihe kolme menee päällekkäin vaiheen yksi kanssa sen sijaan että seuraisi sitä. Mitä se ei tee, on poistaa vaihetta yksi. Arkiston osat kirjoitetaan yhä kokonaisuudessaan levyllesi, koska purkaja on tavanomainen ja lukee tavanomaisia tiedostoja; suora purku vain käynnistää sen aiemmin. Kaksi kopiota on yhä olemassa, kaksi kirjoitusta tapahtuu yhä, eikä vapaan tilan tarve muutu.
| kirjoita osat levylle | tarvittava vapaa tila | montako kertaa sisältö kirjoitetaan | |
|---|---|---|---|
| Lataa, sitten pura | kyllä, sitten takaisinluku | ~2× työ | 2 |
| Suora purku | kyllä, luetaan takaisin aiemmin | ~2× työ | 2 |
| Yksi läpimeno | ei kirjoiteta koskaan | ~1× työ | 1 |
Toinen ero on se mitä tapahtuu kun muoto ei ole yksinkertainen. Koska suora purku antaa työn tavanomaiselle purkajalle osien ilmaantuessa, se tarvitsee tilanteen olevan mutkaton: osat läsnä käyttökelpoisessa järjestyksessä, ei korjausta odottamassa, ei mitään avattavaa ensin, ja arkisto jonka sisältö ei itse ole arkistoja. Kun jokin näistä pettää, järkevintä on vetäytyä ja palata purkamaan lopuksi, ja niin tapahtuu. Saat oikean tuloksen ja tavanomaisen ajoituksen.
Koska purkajamme on rakennettu alusta asti epäjärjestyksessä olevien tavujen ympärille, nuo tilanteet eivät ole sille poikkeuksia. Se on todellinen ero: ei se että aloitamme aiemmin, vaan ettemme nojaa ehtoihin jotka usein eivät päde.
Mikä siitä oikeasti selviää
Tällainen rakenne kannattaa vain jos se pätee niihin postauksiin joita oikeasti kohtaat eikä siistiin parhaaseen tapaukseen. Nykyinen tilanne: mitään säiliömuotoa ei käsitellä pelkästään levyllä. RAR, 7z ja zip kulkevat kaikki yhden läpimenon reittiä.
| muoto | yksi läpimeno | huomautuksia |
|---|---|---|
| RAR, tallennettu (ei pakkausta) | kyllä | tavallinen tapaus mediajulkaisuissa |
| RAR, pakattu | kyllä | mukaan lukien pakattu arkisto uloimpana kerroksena |
| RAR 1.5, 3, 4 ja 5 | kyllä | kaikki neljä muodon sukupolvea |
| 7z | kyllä | mukaan lukien deflate-pakattu sisältö |
| zip | kyllä | mukaan lukien bzip2- ja LZMA-sisältö |
| Salattu sisältö | kyllä | salasanalla, mukaan lukien salattu zip |
| Salatut otsakkeet | kyllä | kun myös tiedostonimet on piilotettu |
| Salasanaketjut | kyllä | kunkin kerroksen salasana pakattuna sen yläpuoliseen kerrokseen |
| Sisäkkäiset arkistot | kyllä | puretaan sisäkkäisyydestä lennossa, säädettävään syvyyteen asti |
| Vaurioitunut usealla kerroksella | kyllä | korjaus joka tasolla, yhä yksi läpimeno |
| Numeerisesti jaetut sarjat | kyllä | name.001-tyyliset jaot |
| Itsepurkautuvat arkistot | levyläpimeno | arkisto ei ala tiedoston alusta |
Jaettu zip (.z01) | levyläpimeno | ja joitakin harvinaisempia zip-muunnelmia |
| Jatketut työt | levyläpimeno | uudelleenkäynnistyksen jälkeen jatkettu työ päättyy tavanomaisesti |
Nämä kolme kieltäytymistä ovat rehellisiä ja käyttäytyvät samoin: työ valmistuu oikein tavanomaista reittiä, ja saat tuolle lataukselle tavanomaisen kahden kopion ajoituksen. Mikään ei epäonnistu; se vain lakkaa olemasta nopea sillä tavalla kuin tämän sivun loppuosa kuvaa. Itsepurkautuvat arkistot torjutaan rakenteellisesta syystä eikä vaivannäön puutteesta: arkiston tunnistaminen sen ensimmäisistä tavuista ei voi toimia kun ensimmäiset tavut ovat ohjelma.
Sisäkkäisyys- ja salausrivit ovat ne jotka kannattaa ottaa vakavasti, koska juuri niissä useimmat ohjelmat antavat työn takaisin sinulle. Tuotetulla kymmenen sisäkkäisen muodon aineistolla, arvosteltuna sisällön tiivisteen perusteella jotta sisällön uudelleennimeävä ohjelma saa silti pisteet, saimme valmiiksi 9 muotoa 10:stä ilman puuttumista; seuraavaksi paras ohjelma sai valmiiksi 5, ja kaksi muuta sai valmiiksi 2. Se jota emme saa automaattisesti valmiiksi on kymmenen tason tikapuut, jotka päättyvät siististi oletussyvyysrajaan viisi jättäen syvimmän kerroksen terveeksi arkistoksi, ja valmistuvat kokonaan jos nostat rajaa. Nuo kierrokset ovat vertailusivulla täyden taulukon kanssa.
Miksi se kannattaa tehdä
Se on nopeampaa, epäglamurööristä syystä. 60 GB:n kirjoittaminen ja takaisin lukeminen ei ole ilmaista edes nopealla SSD-levyllä, ja millä tahansa hitaammalla se on usein varsinainen pullonkaula verkon sijaan. Yhden kirjoituksen ja kahden luvun poistaminen poistaa tuon ajan kellostasi kokonaan. Hyöty on suurin juuri siellä missä sen huomaa eniten: suurissa töissä, ja koneissa joiden levy ei ole niiden nopein osa.
Se puolittaa kulumisen. SSD-levyissä on rajallinen määrä kirjoituksia, ja lataaja joka kirjoittaa jokaisen sisällön kahdesti kuluttaa tuota budjettia kaksinkertaista vauhtia ilman että saat siitä mitään. Muutaman sadan teratavun latausmäärällä, mikä on aktiiviselle käyttäjälle tavallinen vuosi, ero on merkittävä osuus levyn eliniästä.
Se muuttaa sen mikä mahtuu. Vapaa tila ei ole suorituskykyominaisuus, se on kyllä tai ei. Työ joka vaatii kaksinkertaisen oman kokonsa pelivaraa joko ajautuu tai ei. Suunnilleen sisällön koon tarvitseminen tarkoittaa että työt valmistuvat koneilla ja taltioilla joilla tavanomainen lähestymistapa yksinkertaisesti pysähtyy, ja siksi 190 GB:n julkaisu mahtuu täällä noin 157 GB:n vapaaseen tilaan eikä noin 313 GB:hen.
Se maksaa vähemmän suoritinaikaa. Datan siirtämättä jättäminen levyn läpi kahdesti poistaa siihen kuluvan työn, ja latauksen aikana tarkistaminen tarkoittaa ettei sisällön yli tarvita toista läpimenoa sen tarkistamiseksi. Suoritinkustannuksemme pysyy tasaisena noin 1.7 suoritinsekunnissa gigatavua kohti, 35 GB:n työstä 190 GB:n työhön, ja se on hyödyllinen ominaisuus: kustannus gigatavua kohti ei kasva työn kasvaessa.
Se toimii pienemmällä muistilla, ja rajatulla muistilla. Koska tavut kulutetaan niiden saapuessa eikä kerätä kasaan, työjoukko on budjetti jonka asetat eikä työn koon funktio. Juuri se sallii 190 GB:n julkaisun käsittelyn koneella jolla on käytettävissä suunnilleen 1.1 GB. Merkitsevä ero ei ole luku vaan muoto: muisti joka kasvaa työn mukana kohtaa ennen pitkää työn jota koneesi ei saa valmiiksi, ja se pettää sivuttamalla tai tulemalla tapetuksi eikä kertomalla sinulle.
Yhdessä nämä koskevat vähemmän vertailun voittamista kuin sitä missä ohjelmisto ylipäätään voi ajautua. Rakenne joka tarvitsee puolet vapaasta tilasta, puolet kirjoituksista ja rajatun määrän muistia toimii pienellä kotipalvelimella, vanhemmalla kannettavalla tai NAS-laitteella, ja juuri siellä hyvä osa tästä ohjelmistosta oikeasti elää.
Jokainen tämän sivun luku on mitattu ja julkaistu koontiversio ja päivämäärä vieressään vertailusivulla, mukaan lukien häviämämme kierrokset. Rehellinen vastapaino, joka on todettu sielläkin: purkaja ja korjaaja jotka on rakennettu kulkemaan käynnissä olevan latauksen mukana pitävät enemmän muistia varattuna kuin erillinen työkalu joka ajetaan kerran komentoriviltä, joten jos rajoitteesi on pienin mahdollinen jalanjälki kertaluonteiseen työhön tiedostolle joka sinulla jo on, erikoistuneet työkalut voittavat sen sarakkeen.