Galimybė suspausti failus, kad juos būtų lengviau dalytis ir / ar juos transportuoti, gali padaryti mūsų elektroninis gyvenimas daug lengviau, bet kartais mes galime matyti keistą ar netikėtą dydį, kai suspaudžiame juos. Kodėl tai? Šiandieninė "SuperUser" Q & A ataskaita turi atsakymus į supainioti skaitytojo klausimus.
Šiandienos klausimų ir atsakymų sesija ateina pas mus "SuperUser" - "Stack Exchange", bendruomenės pagrįstos Q & A svetainių grupės, padalijimas.
Nuotrauka mandagumo Jean-Etienne Minh-Duy Poirrier (Flickr).
SuperUser skaitytuvas sixtyfootersdude nori sužinoti, kodėl zip sugeba suspausti atskirus failus geriau nei kelis failus su tokio paties turinio tipu:
Tarkime, kad aš turėsite 10 000 XML rinkmenų ir norite jas išsiųsti draugei. Prieš siųsdami juos, aš norėčiau juos suspausti.
1 būdas: nesupriešinkite jų
Rezultatai:
2 būdas: kiekvieną failą atspausdinkite ir išsiųskite 10 000 ZIP failų
komandų:
Rezultatai:
3 metodas: sukurkite vieną zip failą, kuriame yra visi 10 000 XML failų
Komanda:
Rezultatai:
4 metodas: sujungiami failai į vieną failą ir zip
Rezultatai:
Klausimai
- Kodėl aš gaunu tokius žymiai geresnius rezultatus, kai aš tik prisegščiau vieną failą?
- Tikėčiau gauti geresnių rezultatų naudojant metodą 3, o ne 2 metodą, bet aš nereikia. Kodėl tai?
- Ar ši elgsena būdinga zip? Jei aš bandžiau naudoti "Gzip", aš galėčiau gauti skirtingus rezultatus?
Papildoma informacija
Meta duomenys
Vienas iš pateiktų atsakymų rodo, kad skirtumas yra sistemos metaduomenys, kurie saugomi zip faile. Nemanau, kad taip gali būti. Norėdami tai išbandyti, aš padariau šį:
Gautas zip failas yra 1,4 MB. Tai reiškia, kad vis dar yra maždaug dešimt MB nepateisinamų erdvių.
Kodėl "Zip" gali suspausti atskirus failus geriau nei kelis failus su tokio paties tipo turiniu?
"SuperUser" autoriai Alanas Shutko ir Aganju turi atsakymas mums. Pirmiausia Alan Shutko:
"Zip" suspaudimas yra pagrįstas pakartotiniais suspaustų duomenų modeliais, o suspaudimas gerėja, nes ilgiau yra failas, nes galima rasti ir naudoti daugiau ir ilgesnių modelių.
Supaprastinta, jei suspaudus vieną failą, žodynėlis, kuris žemėlapius (trumpus) kodus (ilgesnius) modelius būtinai sudaro kiekviename gautame zip faile; jei zip vieną ilgą failą, žodyną "pakartotinai naudojamas" ir jis vis veiksmingiau išplečia visame turinyje.
Jei jūsų failai yra netgi panašūs (kaip visada tekstas yra), "žodyno" pakartotinis naudojimas tampa labai veiksmingas ir rezultatas yra daug mažesnis bendras zip failas.
Vykdant Aganju atsakymą:
Į zip kiekvienas failas yra suspaustas atskirai. Priešingai yra kietasis suspaudimas , ty failai suspaudžiami kartu. 7-zip ir Rar pagal nutylėjimą naudoja kietąjį suspaudimą. "Gzip" ir "Bzip2" negali suspausti kelis failus, taigi "Tar" yra naudojamas pirmiausia, turintis tokį patį efektą kaip ir kietąjį suspaudimą.
Kadangi xml failai turi panašią struktūrą (ir tikriausiai panašų turinį), jei failai suspaudžiami kartu, tada suspaudimas bus didesnis .
Pavyzdžiui, jei failas yra eilutė "
", o kompresorius jau nustatė tą eilutę kitame faile, jis pakeis mažą rodyklę į ankstesnę atitiktį. Jei kompresoriuje nenaudojamas kietas suspaudimas, pirmasis failo eilutės įvykis įrašomas kaip literal , kuris yra didesnis.
Ar turite ką nors įtraukti į paaiškinimą? Garsas išjungtas komentaruose. Norite skaityti daugiau atsakymų iš kitų "Tech-savvy Stack Exchange" vartotojų? Patikrinkite visą diskusijų temą čia.
Kaip importuoti straipsnius tarp "Pocket" ir "Instapaper"
Jei planuojate palikti savo "read-it-later" pasirinkimą ekologiškoms ganykloms, jums nereikia pradėti nuo nulio. Štai kaip perkelti viską iš "Pocket" į "Instapaper" arba atvirkščiai, be trūkstamo ritmo. SUSIJĘS: Kaip siųsti straipsnius į savo "Kindle", norint vėliau perskaityti "Tinderizer", "Instapaper" ar "Pocket" Kodėl verta pereiti?
Kodėl "Windows" ataskaitų teikimas pernelyg ilgai kopijuojamas?
Jei dirbate su "Windows" pakankamai ilgai, ypač su aplankus ir ilgesnius pavadinimus turinčiais failais, jūs susidursite su keista klaida : "Windows" praneša, kad aplanko kelias ar failo vardas per ilgas, norint pereiti prie naujo paskirties arba netgi ištrinti. Koks yra sandoris? Hey How-To Geek! Taigi kitą dieną reorganizavau kai kuriuos failus į savo kompiuterį, sukūriau aplankus, tokius dalykus.