Prawie wszystkie współczesne archiwizatory robią to dokładnie, jedyną różnicą jest to, że nazywają to „solidnym” archiwum, ponieważ we wszystkich plikach są one łączone w jeden strumień przed dostarczeniem do algorytmu kompresji. Różni się to od standardowej kompresji zip, która kompresuje każdy plik jeden po drugim i dodaje każdy skompresowany plik do archiwum.
7-zip ze swej natury skutecznie osiąga usuwanie duplikatów. 7-Zip na przykład wyszuka pliki, posortuje je według podobnych typów plików i nazw plików, więc dwa pliki tego samego typu i dane zostaną umieszczone obok siebie w strumieniu przechodzącym do algorytmów kompresora. Kompresor zobaczy wtedy dużo danych, które widział bardzo niedawno, a te dwa pliki zobaczą duży wzrost wydajności kompresji w porównaniu do kompresji plików jeden po drugim.
Linux widział podobne zachowanie od dawna dzięki rozpowszechnieniu ich formatu „.tgz” (lub „.tar.gz”, aby użyć swojej pełnej formy), ponieważ tar po prostu łączy wszystkie pliki w jeden strumień (choć bez sortowanie i grupowanie plików), a następnie kompresowanie za pomocą gzip. To, czego brakuje, to sortowanie, które wykonuje 7-zip, co może nieco zmniejszyć wydajność, ale wciąż jest znacznie lepsze niż zwykłe łączenie wielu indywidualnie skompresowanych plików w sposób, w jaki robi to zip.
.tar.gz
kompresuje tylko stosunkowo niewielkich bloków (takich jak 900 KB) jednocześnie całkowicie niezależnie od siebie, a zatem nie ma możliwości deduplikacji dwóch dużych, ale identycznych plików (np. Kilka obrazów 4 MB)?Używanie deduplikacji w procesie kompresji nie ma sensu. Większość algorytmów kompresji tworzy tak zwany „słownik”, który będzie szukał najczęściej używanych lub ponownie wykorzystywanych bitów danych. stamtąd będzie po prostu odwoływał się do hasła słownika, zamiast pisać od nowa całe słowo. W ten sposób większość procesów kompresji już wycina zbędne lub zduplikowane dane ze wszystkich plików.
Na przykład, jeśli weźmiesz plik 1 MB i skopiujesz go 100 razy pod inną nazwą za każdym razem (łącznie 100 MB miejsca na dysku), a następnie skompresujesz go w pliku 7zip lub zip, będziesz miał plik zip o łącznej wielkości 1 MB. Wynika to z faktu, że wszystkie twoje dane zostały umieszczone w jednym wpisie słownika i zostały przywołane 100 razy, co zajmuje bardzo mało miejsca.
Jest to bardzo proste wyjaśnienie tego, co się dzieje, ale kwestia ta nadal jest dobrze przekazywana.
źródło
7-Zip, zip, gzip i wszystkie inne archiwizatory nie wykrywają identycznych obszarów, które są daleko od siebie, takich jak zaledwie kilka megabajtów lub więcej, wewnątrz tego samego pliku lub umieszczone w różnych pozycjach w różnych plikach.
Więc nie, normalne archiwizatory nie działają tak dobrze jak exdupe i inne, w niektórych situracjach. Możesz to zobaczyć, jeśli skompresujesz niektóre maszyny wirtualne lub inne rzeczy.
źródło