Dość mocna zajawka wzięła mnie by porównać sobie stopnie kompresji plików, przy użyciu jednego narzędzia – programu 7-zip. Jakiś czas temu poruszałem temat Najlepszy „paker” plików, wtenczas porównałem dwa programy archiwizujące:
Bezapelacyjnie wygrał wówczas 7-zip, czy to ze względu na stopień kompresji przy użyciu flagowego rozszerzenia (7z), czy to również ze względu na cenę, gdyż jest on darmowy. Obecnie miałem taką „rozkminkę”, że skoro program ten wygrał i de facto jestem jego użytkownikiem do dłuższego czasu, to nasuwały mi się pewne pytania:
- przy użyciu jakiego rozszerzenia zyskuję najlepszy stopień kompresji
- zachowując tym samym najkrótszy czas, który muszę poświęcić na spakowanie pliku/ów
- jak i również, jakie formaty plików opłaca się kompresować, a jakie nie (wiadome, że nie wszystko, co możliwe sprawdzałem)
Do testu użyłem oczywiście najnowszej stabilnej wersji programu 7-zip, oraz podstawowych ustawień do kompresji (przestawiałem tylko stopień kompresji i rozszerzenie). Sam test opieram na użyciu 4 rozszerzeń:
- Zip;
- 7z;
- BZip2;
- GZip.
Jaki jest najlepszy, jaki najgorszy… co warto, czego nie. Mam nadzieję, że jako tako dowiodłem tego, a na pewno zaspokoiłem swą własną ciekawość. Tak, zdaję sobie poniekąd sprawę, że „nie opłaca się czegoś takiego robić, bo to bez sensu i w ogóle ą, ę…„, czy po prostu (#pececik @ irc.freenode.net):
17:40 < alienek> na bloga wpis jakis? czy po co ci to
17:41 < inzaghi89> no na bloga
17:46 <@PiotrLegnica> bez sęsu ;p
17:46 < inzaghi89> ^^ no pewno
17:46 < inzaghi89> z czystej ciekawości chciałem to sprawdzić, a przy okazji opiszę to :D
17:46 < inzaghi89> może sie dyskusja wywinie jakaś :)
17:47 <@PiotrLegnica> http://www.maximumcompression.com/index.html
17:47 <@PiotrLegnica> nuff said
No ale… wziąłem się, zrobiłem i publikuję.
Na końcu wpisu znaleźć można plik PDF zawierający „roboczą” tabelkę porównującą stopnie kompresji plików dla poszczególnych rozszerzeń i stopni kompresji. Bezapelacyjnie – ponownie zresztą uważam, że wygrywa to zmaganie 7z, aczkolwiek mam co do i niego pewne zastrzeżenia. Chwilę minęło zanim doszedłem do ładu z tym, jak chcę przekazać te informacje, bo wyjść miałem kilka (aż dwa):
- przedstawię po kolei stopnie kompresji i rodzaj archiwów;
- będę opisywał po kolei rozszerzenia plików, które kompresowałem, a na koniec analiza.
Bez znaczenia, co Wy uważacie za bardziej słuszne, postanowiłem iść za głosem rozsądku i wybrać opcję 1.
Pragnę nadmienić jeszcze, że w każdym z plików tekstowych: DOC, ODT oraz TXT użyłem dokładnie tego samego tekstu. Jest to tekst „Lorem ipsum…” powielony… bardzo powielony. W przypadku pozostałych plików są to wyciągnięte gdzieś z dysku pliki, a WAV jest zrobiony z pliku FLAC. Nie pytajcie, dlaczego wybrałem te/tylko te rozszerzenia. Jeśli chcecie, mogę poświęcić czas na inne, ale zaproponujcie coś.
7z i jego stopnie kompresji prezentują
Zacząłem od flagowego archiwa programu 7-zip. W całym teście brałem generalnie pod uwagę jedynie trzy stopnie kompresji – najszybszy, normalny, ultra. Z racji tego, że testy rozpoczynałem od najszybszej kompresji, a kończyłem zawsze na ultra, tak i od najszybszego zacznę swe wywody.
FLAC skompresowanym jest i skompresować się nie da
Archiwum zostało utworzone szybko, a co można wywnioskować z wyników – efektownie. W przypadku choćby najszybszej kompresji udało się utrzeć „rywalom” nosa. W każdym stopniu kompresji, dla każdego z testowanych przeze mnie pliku 7z wygrywał, no… jednak nie dla każdego. Ku mojemu zdziwieniu okazało się, że 7z nie zdaje się w roli archiwizera plików FLAC, ku mojemu zdziwieniu również okazało się, że te pliki już są skompresowane, dlaczego się zdziwiłem? Bo żyłem w przekonaniu, że FLAC, to taki lepszy WAV, a tu proszę, różnica jest i to duża, bo to pierwsze już jest skompresowane. Co ciekawsze również, jedynie 7z w żadnym stopniu kompresji nie zaradził sobie z jakimkolwiek pomniejszeniu pliku FLAC, pozostali rywale, co prawda nie byli o wiele lepsi, ale udało im się w stopniu „ultra” nieco pomniejszyć plik. W pozostałych stopniach kompresji, skompresowany plik FLAC zajmował więcej miejsca niż przed. Wprawdzie są to minimalne różnice, ale są!
DOCobyła tekstowa
Zacząłem co prawda od opisywania FLAC, zamiast po kolei zaczynając od DOC, ale już się poprawiam. Otóż kompresja dokumentu DOC przebiegła dość dobrze. Ba! W przypadku żadnego innego rozszerzenia stopień kompresji nie był aż tak duży! Z około 80MB zrobiło się około 10KB.
„Otwarty dokument tekstowy” to szałowy plik
Kolejnym był FLAC, o którym pisałem wcześniej. Następnie ODT, którego kompresja za pomocą programu mnie nie zaskoczyła, zaskoczył mnie natomiast fakt, że OpenOffice z grubo ponad 7000 stron tekstu „zapisał” się w niecałych 300KB i mimo to, udało się ten plik jeszcze pomniejszyć – brawo, dla programistów.
A TXT dalej swoje
Kolejny, plik TXT. Zważcie na pewien paradoks. Plik TXT nie ma żadnej kompresji, a na dysku zajmuje ~38MB, a DOC z tą samą zawartością dwa razy tyle! No cóż, głupi bym był, jakbym napisał, że mnie to zaskoczyło – nie, nie zaskoczyło mnie. Spodziewałem się dużej kompresji, z racji na zerową kompresję plików TXT, a właśnie wiązało się to z tym, że archiwizery potrafią podołać oczekiwaniom i „okroić” plik.
Udźwiękowienie bezstratno-niekompresujące
Ostatni plik, to plik dźwiękowy WAV. Tutaj zdziwienie. Dużo lepszych wyników oczekiwałem, bo plik jest największym spośród reszty testowanych, a przy okazji WAV niby nie ma kompresji. Niby, bo z tego testu wynikło, że jest kompresja, a przy okazji wrzucanie tych plików do archiwów w celu przyoszczędzenia miejsca na dysku – nie ma sensu. Podobnie, jak w przypadku FLAC, kompresja nie jest na tyle zadowalająca, by tracić na nią czas.
BZip2 – czasouniemilacz!
Nie najgorszy, ale najdłużej pakujący. W moim rankingu archiwum to zajmuje ostatnie miejsce! Tak, ostatnie. Mimo dość dobrego stopnia kompresji, czy to w najszybszym sposobie kompresji, czy w ultra – archiwa tworzą się strasznie długo. W czasie tworzenia jednego archiwa, używając 7z, czy Zip spakowałbym spokojnie kilka dodatkowych plików, czy nawet folderów. Cóż, nie ma ideału.
Bzzzzzzzz DOC
Wyprzedzając fakty, rozszerzenie to wypada w wypadku plików DOC gorzej (na pewno) od 7z, aczkolwiek na pewno lepiej od pozostałych archiwów. Ale cóż z tego, skoro jeden plik pakuje się kilka/naście minut. Nie no, sorry ale ja podziękuję.
Bezzzzstratny i bezzzkompressssji
Historia się powtarza, nie ma większej różnicy w przypadku FLAC, tutaj również.
Długo, dłużej, ODT…
Niemalże identyczne rozmiary plików, co w przypadku 7z – niemalże, bo nie identyczne, popatrzcie uważnie na rozmiary i % kompresji. Ale powtórzę to po raz kolejny i powtórzę jeszcze nie raz – za długo pakuje pliki!
TXT się ugiął pod naporem
Drugi co do stopnia kompresji TXT. Pozostali „rywale” mogą tym dwóm archiwom pogratulować i popatrzeć zza rogu, jak sobie radzą z kompresją. Nic poza tym, kompletnie nic poza tym nie zrobią – fucking lame. Chciałbym rzec, że wreszcie coś lepszego z tym się dzieje, ale nie! Znowu strasznie długo pakuje, a na dodatek jest gorszy od 7z.
Bum, bum, bzzz – WAV
Gorzej, dłużej, jak 7z, lepiej ale wciąż dłużej, jak pozostałe archiwa.
Weź GZip i zrób ZIP
GZip rywalizuje doskonale z Zip’em. Tak, niewiele lepszy od niego, na szybkość narzekać bardziej nie można, bo źle nie jest. Szkoda tylko, że różnica między rozmiarami i % kompresji plików w porównaniu do Zip nie jest taka wielka, bo granica ta jest generalnie niezauważalna. Z racji, na niewielką różnicę postanowiłem opisać te archiwa razem. Mam nawet odczucie, że GZip, to taki nieco lepszy Zip, gdyż różnica na prawdę jest niezauważalna.
Źle, gorze, DOCrzej, najgorzej
Fatalnie wypadły te archiwa. Najgorzej spośród wszystkich czterech testowanych. Nie mam tu na myśli prędkości archiwizacji, ale samego stopnia. Jest najgorzej. Tutaj pliki zajmują około 70KB, gdzie w przypadku 7z i BZip2 rozmiar ten dochodzi do 20KB – niemal czterokrotnie mniej!
Odbili sobie na FLAC
Tak, tutaj role się odmieniły, bo Zip i GZip, jako jedyni skompresowali choć trochę plik poniżej jego oryginalnych rozmiarów. Co prawda dopiero w „ultra” kompresji, ale dokonali tego. Cud? Możliwe ;) .
Łeb w łeb z ODT
Nie dostrzegam tu większej różnicy. Najlepiej oczywiście 7z sobie poradził kompresując plik o ponad 4%, ale są to różnice między 1-2KB, więc nie jest to coś, o co można się tłuc.
Trzymaj kredens, bo TXT nie ustąpi
He, czy to kompresja najszybsza, normalna, czy ultra… za każdym razem to samo, a co ciekawe – nie zaskakuje. Pliki zajmują niecałe 20KB, co świadczy o tym, że są one 20 razy większe od tych skompresowanych 7-zip’em.
Idealna para z WAV’em
Najniższy stopień kompresji spośród wszystkich czterech, ale za to przyznać trzeba, że Zip i GZip dobrali się idealnie mając niemalże identyczny % kompresji pliku i w rozmiarach plików.
Podsumowanie
Ostatnie były foldery, które „pakowałem”, ale ich nie opisywałem. Zrobiłem to tylko i wyłącznie dlatego, by zaspokoić ostatecznie swą ciekawość kompresując cały folder z tymi plikami, a z drugiej strony nie dyskryminując BZip2 i GZip, które to nie mają możliwości archiwizowania folderów. Owszem, mogłem zaznaczyć wszystkie pliki w folderze i je zarchiwizować – ale nie taka była moja idea.
Podsumowanie, podsumowanie, podsumowanie… cóż podsumowywać. Jeśli zależałoby mi na czasie i na stopniu kompresji – wybrałbym 7z, jeśli na samym stopniu kompresji to wybrałbym również 7z, jeśli zależałoby mi na samym czasie – to również wybrałbym 7z z najszybszym stopniem kompresji, bądź bez kompresji. Choć Zip również tutaj kusi :) , jak i Tar, którego tutaj nie opisywałem z racji na brak kompresji.
Jaki jest kolejny argument ogólnie skłaniający do korzystania z samego programu? Ach, nie jeden argument a kilka nawet.
- jest dostępny na wiele platform: Windows, Linux, MacOS, BeOS, Amiga, DOS, WinCE;
- obsługuje wiele rodzajów archiwów – w tym również RAR, CAB, ISO…;
- jest darmowy;
- ma otwarty kod;
- jest po polsku.
Liczę na jakąś kulturalną dyskusję związaną z tym tematem :) . Mam nadzieję, że dowiem się jeszcze czegoś nowego i ciekawego. A no i byłbym zapomniał:
Dodaj komentarz