Czy powinienem używać kompresji xz czy lzma?

29

Zastanawiałem się, ponieważ w Ubuntu 10.10 mam możliwość tworzenia zarówno archiwów xz, jak i lzma. Czy powinienem przejść na XZ?

http://en.wikipedia.org/wiki/Xz

http://en.wikipedia.org/wiki/Lzma

NightwishFan
źródło
Zauważ, że istnieje także nowszy typ archiwum LZ, który został zasadniczo wprowadzony „od czasu tej dyskusji” stackoverflow.com/a/49456056/32453, więc nie myl go z lzmawymienionym tutaj :)
rogerdpack

Odpowiedzi:

12

Ten test porównawczy zawiera kilka dobrych informacji na temat tego problemu. Wygląda na to, że LZMA ma nieco lepsze współczynniki kompresji i wydajność niż XZ, ale XZ jest ogólnie preferowany z „praktycznych powodów” (nie jestem pewien, jakie to są).

XZ jest implementacją algorytmu lzma2 i lepiej kompresuje dane „nieskompresowalne”:

lzma2 to metoda kompresji stosowana przez sprężarkę 7-Zip LZMA2. LZMA2 to zmodyfikowana wersja LZMA, która oferuje lepszy współczynnik kompresji dla danych nieściśliwych (dane losowe zwiększają się o około 0,005%, w porównaniu z 1,35% z oryginalnym LZMA) i opcjonalnie może kompresować wiele części dużych plików równolegle, znacznie zwiększając szybkość kompresji, ale z możliwym zmniejszeniem stopnia kompresji (patrz LZMANumBlockThreads). Podobnie jak LZMA, może zużywać dużo pamięci; patrz powyższa tabela. Jeśli poziom kompresji nie jest określony, domyślnie jest to maks.

( http://www.jrsoftware.org/ishelp/index.php?topic=setup_compression )

Powinieneś być OK używając jednego z nich.

dv3500ea
źródło
Z ciekawości zdecydowałeś się użyć?
dv3500ea,
1
Właściwie po kilku testach wydaje się, że xz będzie drogą do przodu. Oszczędza to również sporo kompresji (czasami 10 MB) na plikach binarnych w stosunku do LZMY.
NightwishFan,
8
To nie była odpowiednia odpowiedź w odniesieniu do „OK, używając albo”. Nawet w chwili, gdy opublikował to pytanie, wiadomo, że w najbliższej przyszłości pliki .lzma zostaną całkowicie zastąpione przez .xz. Autor LZMA-Utils powiedział publicznie, że są przestarzałe i używają xz-utils od 5.00. Ostatnia wersja LZMA-Utils to 2008-07-30, nawet w tym czasie. Tak więc jeśli chodzi o kompresję, ulepszenia mogą nie być wielkim czynnikiem determinującym. (na ironię, gdyby tak było). Ale powody „polityczne” powinny być istotnym powodem do korzystania z XZ-Utils i unikania tworzenia nowych archiwów .lzma.
JM Becker,
1
@TechZilla Czy zastanawiałeś się nad opublikowaniem swojego stanowiska w sprawie alternatywnej odpowiedzi?
ændrük
1
Praktycznymi powodami dla LZMA2 jest obsługa wielowątkowości. Wydajność pojedynczego wątku i współczynnik kompresji są nieco niższe, ale w systemie z kilkoma rdzeniami oczekuje się, że LZMA2 będzie znacznie szybszy podczas dekodowania.
Jonathan Baldwin
42

Nie zgadzam się z konkluzją @ dv3500ea: „OK, używając albo”, ponieważ było to niewłaściwe. Nawet w podanym dniu / godzinie .lzmapliki były całkowicie zastępowane przez .xz. Autor obu Utils powiedział publicznie , że użytkownicy powinni przejść na XZ-Utils ≥ 5,00. Ostatnia wersja LZMA-Utils to 2008-07-30 i została wycofana.

LZMA Utils to starsze oprogramowanie do kompresji danych o wysokim stopniu kompresji. Narzędzia LZMA nie są już rozwijane, chociaż krytyczne błędy mogą być naprawiane, o ile ich naprawianie nie wymaga dużych zmian w kodzie.

Użytkownicy LZMA Utils powinni przejść do XZ Utils. XZ Utils obsługuje starszy .lzmaformat używany przez LZMA Utils, a także może emulować narzędzia wiersza poleceń LZMA Utils. To powinno sprawić, że przejście z LZMA Utils do XZ Utils będzie stosunkowo łatwe.

Czynnikiem determinującym może nie być kompresja, choć jak na ironię tak było w tym przykładzie. „praktyczne powody” są oczywistym i znaczącym powodem do używania XZ-Utils. Ponadto .xzformat umożliwia określenie algorytmów kompresji i filtrów, dzięki czemu .xzpliki mogą korzystać z LZMA lub LZMA2. Unikaj tworzenia nowych .lzmaplików, są one uważane za starszy format.

Jeśli chodzi nawet o utrzymanie LZMA-Utils w pobliżu: nie. XZ-Utils obsługuje starsze .lzmapliki. Ma także opakowania dla skryptów wciąż korzystających z LZMA-Utils. Jeśli wszystkie te powody były nadal niewystarczające, Ubuntu usunęło starsze oprogramowanie lzma-utils ze swojego repozytorium.

JM Becker
źródło
1
„Autor obu Utils powiedział publicznie, że użytkownicy powinni przejść na XZ-Utils ≥ 5,00.” Wymagany cytat. :-)
Faheem Mitha
@FaheemMitha: Ponieważ jest to post, a nie odniesienie edukacyjne lub oryginalne badanie, cytatem byłaby tylko strona projektu. Zakładałem, że skoro pochodzi on od autora LZMA-Utils, a on napisał OBIEKTY zestawy narzędzi z zamiarem xz-utils zastępujących starsze LZMA-Utils, to było oczywiste. ... Ale dla każdego, kto chce uzyskać więcej informacji, tukaani.org/lzma .
JM Becker
3

Zdecydowanie nie powinieneś używać LZMY, jak mówią inni.

Antonio Diaz Diaz, autor formatu lzip, twierdzi, że format Xz jest nieodpowiedni do długotrwałej archiwizacji . Jeśli chcesz wykonać kopię zapasową ważnych plików, rozważ inne formaty plików, takie jak bzip2, który ma narzędzie do odzyskiwania po uszkodzeniu.

krytyk
źródło
xz jest przez niektórych uważany za niebezpieczny. Nie dotyczy to jednak LZMY.
o
0

xz jest preferowany, ponieważ ma najwyższy stopień kompresji. Jednak kompresuje się wolniej, ale nadrabia to kompresją.

Odległa grafika
źródło