Bardziej wydajny program do kompresji plików dla wielu identycznych plików?

12

Robię kopię zapasową mojej pracy i szukam programu, który mógłby bardziej efektywnie kompresować pliki. Domyślny program do kompresji systemu Windows działa dobrze, ale nie działa tak „inteligentnie”, jak bym chciał.

Moje pliki to w zasadzie całe migawki mojej pracy wykonane w ciągu ostatnich kilku miesięcy podczas regularnych pełnych kopii zapasowych. niewiele zmian między kopiami zapasowymi, a wiele plików to po prostu kopie.

Cały mój zestaw plików jest nieskompresowany w przybliżeniu 15 GB, podczas gdy poszczególne kopie zapasowe migawek (skompresowane przy użyciu standardowych programów do kompresji) zajmują po około 150 do 200 MB (zazwyczaj zwiększają się wraz z nowszymi datami). Całkowity rozmiar wszystkich skompresowanych migawek wynosi około 3 GB. Ze względu na naturę plików oczekuję, że „inteligentny” program do kompresji obniży cały wolumin do około 400-500 MB, to znaczy, biorąc pod uwagę rozsądną nieefektywność i dodatkową przestrzeń do skompresowania różnic w plikach.

Czy istnieje program kompresji, który skorzysta z faktu, że wiele plików jest identycznych, aby osiągnąć znacznie wyższy współczynnik kompresji niż standardowy program do kompresji systemu Windows?

Dzięki -Faken

Edycja: Właśnie zakończyłem najlepszą kompresję całego woluminu przy użyciu standardowej kompresji systemu Windows. Jest tylko 10 MB lepszy niż skompresowane migawki łącznie. Moim zdaniem nie do przyjęcia jest znajomość charakteru plików.

ChrisF
źródło
W jakiej wersji systemu Windows?
John T
1
Heh, jego widok ...
3
Czy przejście na kontrolę wersji zamiast tych kopii zapasowych nie byłoby lepsze? Używam git również do plików binarnych i działa naprawdę dobrze. Nie sądzę, że mógłby skompresować go tak dobrze, jak 7z, ale czy to ma znaczenie, czy zajmuje 150 MB, czy 300 MB? Jeśli nie, wybrałbym łatwość użycia i elastyczność.
maaartinus

Odpowiedzi:

18

7-zip obsługuje solidną kompresję, jeśli dobrze pamiętam, więc powinna bardzo dobrze kompresować wiele prawie identycznych plików.

T. Kaltnekar
źródło
2
+1 i rozważ domyślny format 7z .
nik
Spróbuję, skontaktuję się z tobą z wynikami.
2
Po 1 godzinie kompresji przy najwyższych ustawieniach mam rozmiar pliku 133 MB. To bardzo imponujące! Moje pierwotne oszacowanie agresywne (którego nie podałem) miało rozmiar około 150 MB (w przeciwieństwie do mojego konserwatywnego oszacowania wynoszącego 400-500 MB). Wygląda na to, że od teraz będę konwertować na 7z!
Nawet jeśli musisz trzymać się standardowego formatu Zip, 7-zip ma lepszą wydajność niż inne popularne narzędzia do kompresji (WinRAR, WinZip) o najwyższym ustawieniu wydajności.
christophem
7 zip to dosłownie jedno z pierwszych narzędzi, jakie założyłem na nowe pudełko. To jest po prostu zbyt przydatne.
corsiKa
5

Przeprowadziłem pewne testy aspektu „identycznych plików”, jak wspomniano w pytaniu, przy użyciu 7-zip (wersja 9.20), ponieważ nikt jeszcze nie udzielił na to wyczerpującej odpowiedzi. To dało ciekawe wyniki. Przetestowałem przy użyciu 10 kopii pliku używanego przez tę witrynę do wyświetlania wiadomości o nieodnalezieniu strony . Ten plik nie kompresuje się zbyt dobrze jako pojedynczy plik, ponieważ jest plikiem jpg. Dlatego zademonstruje skuteczność kompresji wielu identycznych plików. Jego rozmiar pliku to 37 KB.

  1. Kiedy kompresuję wszystkie dziesięć kopii, używając formatu zip, rozmiar pliku wynosi 367 KB, a rozmiar skompresowanego pliku wynosi około 99% pierwotnego całkowitego rozmiaru wszystkich 10 plików.
  2. Kiedy kompresuję wszystkie dziesięć kopii, używając formatu do 7z, rozmiar pliku wynosi 37 KB, a rozmiar skompresowanego pliku to około 101% tylko jednego z oryginalnych plików.
  3. Jeśli najpierw umieszczę 5 kopii w archiwum 7-z, a następnie dodaję 3, a na koniec 2 kopie w osobnych krokach, rozmiar pliku wynosi 111 KB, czyli około trzykrotnie więcej niż jednego oryginalnego pliku.

Jeśli otworzę 3. archiwum, jedną z właściwości jest Blok . Podaje 0, 1 i 2 odpowiednio dla 3, 5 i 2 plików.

Obserwacje:

  1. Format zip kompresuje każdy plik osobno, nie korzystając z możliwości skutecznego kompresowania identycznych plików.
  2. Format 7z skutecznie kompresuje wiele identycznych plików, o ile są one dodawane do archiwum w jednym kroku.

Wnioski:

  1. Aby uzyskać optymalną kompresję plików, użyj 7z zamiast zip.
  2. Kompresja może ulec znacznej poprawie, jeśli nie dodasz plików do istniejącego archiwum 7z, ale najpierw rozpakujesz go i ponownie skompresujesz, łącznie z nowymi plikami, w jednym kroku.
R. Schreurs
źródło
1

System Windows Vista jest wyposażony w Centrum kopii zapasowych i przywracania . Będzie tworzyć przyrostowe kopie zapasowe plików, aby uniknąć marnowania miejsca i konieczności tworzenia wielu kopii zapasowych. Z połączonej strony:

Wcześniejsze kopie zapasowe wersji plików zajmowały jedynie minimum miejsca na dysku. Jeśli zmienia się tylko niewielka część pliku (na przykład jeden slajd w prezentacji), tylko ta część jest śledzona i zapisywana.

John T.
źródło
1

7-zip ma jeden z najlepszych dostępnych algorytmów kompresji. Nie wydaje mi się, aby do tej pory istniało coś, co przewyższa 7-zip w kompresji (algorytmie).

Grumpy ol 'Bear
źródło