cs.phhsnews.com


cs.phhsnews.com / Proč je Zip schopen zkomprimovat jednotlivé soubory lépe než více souborů se stejným obsahem?

Proč je Zip schopen zkomprimovat jednotlivé soubory lépe než více souborů se stejným obsahem?


Dokáže komprimovat naše soubory tak, aby bylo jejich sdílení a transport snadnější elektronické životy jsou mnohem jednodušší, ale někdy se nám po komprimování mohou zobrazit i liché nebo neočekávané výsledky. Proč je to tak? Dnešní příspěvek SuperUser Q & A má odpovědi na zmatené otázky čtenáře.

Dnešní zasvěcování o otázce a odpovědi se k nám dostalo s laskavým svolením SuperUseru - subdivize Stack Exchange, komunitní skupiny webových stránek Otázky a odpovědi.

Otázka

čtečka SuperUser šestnáctiúrovni chce vědět, proč je zip schopen komprimovat jednotlivé soubory lépe než více souborů se stejným typem obsahu:

Předpokládejme, že já mít 10 000 souborů XML a chcete je poslat kamarádovi.

Metoda 1: Nekomprimujte je

Výsledky:

Metoda 2: Zip každý soubor samostatně a pošlete mu 10 000 souborů XML zipped

Příkaz:

Výsledky:

Metoda 3: Vytvoření souboru s jediným zip obsahujícím všechny soubory XML

:

Metoda 4: Zřetězení souborů do jednoho souboru a zip it

Výsledky:

Otázky

Proč se dostávám tak dramaticky lepších výsledků, když jsem jen zkopíroval jediný soubor?

  • Očekával jsem drasticky lepší výsledky pomocí metody 3 spíše než metody 2, ale já ne. Proč to je?
  • Je toto chování specifické pro zip? Pokud jsem se pokusil použít Gzip, dostanu jiné výsledky?
  • Další informace

Meta data

Jedna z uvedených odpovědí naznačuje, že rozdíl je systémová meta data uložená v souboru zip. Nevěřím, že by tomu tak mohlo být. Pro otestování jsem udělal následující:

Výsledný zip soubor je 1,4 MB. To znamená, že stále existuje přibližně deset MB nevysvětlitelného prostoru.

Proč je zip schopen komprimovat jednotlivé soubory lépe než více souborů se stejným typem obsahu?

Příspěvky

přispěvatelé SuperUseru Alan Shutko a Aganju mají odpověď na nás. První z nich je Alan Shutko:

Komprese zip je založena na opakujících se vzorcích dat, které mají být komprimovány a komprese se zlepšuje, čím delší je soubor, tím více a delší vzory mohou být nalezeny a použity.

Zjednodušené, pokud komprimujete jeden soubor, slovník, který mapuje (krátké) kódy na (delší) vzory, je nutně obsažen v každém výsledném souboru zip; pokud zkopírujete jeden dlouhý soubor, slovník je 'znovu použit' a roste ještě efektivnější u veškerého obsahu.

Pokud jsou vaše soubory dokonce trochu podobné (jako text vždy), opětovné použití slovníku se stává velmi efektivní a výsledkem je mnohem menší soubor s celkovým zipem.

Následuje odpověď od Aganju:

Ve zipu je každý soubor komprimován samostatně. Opačný je

pevná komprese , to znamená, že jsou soubory komprimovány dohromady. 7-zip a Rar ve výchozím nastavení používají pevnou kompresi. Gzip a Bzip2 nemohou komprimovat více souborů, takže je nejdříve používán Tar, který má stejný efekt jako pevná komprese. Protože soubory xml mají podobnou strukturu (a pravděpodobně podobný obsah), pokud jsou soubory komprimovány dohromady, komprese bude vyšší .

Například pokud soubor obsahuje řetězec "

" a kompresor již nalezl řetězec v jiném souboru, nahradí ho malým ukazatelem předchozího shody. Pokud kompresor nepoužívá pevnou kompresi, bude první výskyt řetězce v souboru zaznamenán jako doslovný , což je větší. Musíte přidat něco k vysvětlení? Zní to v komentářích. Chcete se dozvědět více odpovědí od ostatních uživatelů technologie Stack Exchange? Podívejte se na celý diskusní příspěvek zde.



Jak opakovat konkrétní řádky nebo sloupce na každé vytištěné stránce v aplikaci Excel

Jak opakovat konkrétní řádky nebo sloupce na každé vytištěné stránce v aplikaci Excel

Pokud v listu zachycujete po tisku více než jednu stránku, můžete vytisknout záhlaví řádků a sloupců (také nazývané tiskové tituly) na každé stránce, aby vaše data byla správně označena, což usnadňuje prohlížení a sledování tištěných dat Otevřete list, který chcete vytisknout, a klikněte na kartu "Rozvržení stránky" V části "Page Setup" , klepněte na tlačítko "Tisknout tituly".

(how-to)

Jak povolit, optimalizovat a optimalizovat NVIDIA G-Sync

Jak povolit, optimalizovat a optimalizovat NVIDIA G-Sync

Pokud máte grafickou kartu NVIDIA a monitor, který podporuje NVIDIA G-Sync, můžete ji použít k odstranění trhání obrazovky a Co G-Sync souvisí: Vysvětlení G-Sync a FreeSync: Variabilní obnovovací frekvence pro hraní her "Roztrhávání obrazovky" je tradičně problém při hraní PC hry. Řekněme, že máte monitor s rozlišením 60 Hz, což znamená, že může zobrazit 60 snímků za sekundu.

(how-to)