Reacties
- Ik denk dat je moet instellen voer een eenvoudige test uit en kijk welk compressieprogramma " het beste " voor jou is. Niemand anders kan het je vertellen.
Antwoord
gzip
en xz
gebruikt twee verschillende algoritmen, en daarom presteren ze anders, zowel wat betreft het compressieniveau dat ze bereiken als wat betreft de hoeveelheid bronnen die ze verbruiken tijdens het comprimeren of decomprimeren.
In algemeen bereikt xz
hogere compressieverhoudingen, maar heeft veel meer geheugen en tijd nodig.
Persoonlijk gebruik xz
voor het archiveren van gegevens; grote bestanden die ik voor een lange tijd moet bewaren. Ik gebruik gzip
anders, omdat het meestal sneller is.
Test ze allebei en kijk hoe ze presteren op jouw gemiddelde tar
(of wat dan ook) bestand.
Antwoord
xz
is de afgelopen jaren een beetje een standaard geworden als het gaat om pakketbeheer.
Het LZMA2-compressie-algoritme dat xz
gebruikt, is uitzonderlijk efficiënt met tekst (en ‘tekstachtige’) data. Ik gebruik het persoonlijk voor vrijwel alles, waar de snelheid van de computercodering geen probleem is (xz
decomprimeert veel sneller dan comprimeren, het is eigenlijk een van de ontwerpdoelen).
Het is dus geweldig voor zaken als archiveren of back-ups maken (over het algemeen worden bestanden die vaak worden uitgepakt, maar waar gegevens worden niet de hele tijd gecomprimeerd, of gewijzigd, enz.). Het is niet zon goede beslissing voor streamcompressie – althans niet zo vaak, omdat LZMA2 niet bepaald licht is voor bronnen bij het comprimeren.
Maar ik wil graag iets zeggen over een andere verklaring of yours: “should”. Wat u zou of niet mag gebruiken, hangt af van waar u uw gegevens voor nodig heeft. Hoewel xz
en LZMA2 bestaan al jaren, mensen beschouwen comprimeren met gz
nog steeds als terugval om compatibiliteitsredenen. Dingen zoals Trac of cgit aanbieding .tar.gz
, .7z
, en .tar.xz
. Met de .tar.gz
optie erbij, want het is “altijd geweest” , en het ” een goede terugvalmaatregel op elk soort apparaat, hoe minimaal of oud ook.
Net als een tegenvoorbeeld, lzop
is een snelle en bronbesparing compressor, die vaak wordt gebruikt op ruimtevaartuigen, maar verder niet erg efficiënt. Ik kan echter niet zeggen dat het niet veel wordt gebruikt. Het wordt vaak gebruikt op systemen waar het belangrijker is om snel iets te comprimeren met weinig kracht en computerruimte.
Dus wat u wel of niet moet gebruiken, is wat u het meest logisch vindt en de mensen die interactie hebben met uw gegevens.
Een ding kwam onlangs bij me op: man
paginas worden routinematig gecomprimeerd met gzip
. Als je bijvoorbeeld naar /usr/share/man/man1/
kijkt, “zie je veel bestanden die lijken op mv.1.gz
, als ze niet allemaal gecomprimeerd zijn . Nu zou het logisch zijn om over te schakelen naar .xz
bestanden vanwege de betere compressie, maar de ruimtewinst is minimaal, vergeleken met de negatieve effecten van het weggooien van .gz
voor .xz
. De reden hiervoor is de bijna universele compatibiliteit. Zelfs het openen van de .gz
gecomprimeerde bestanden rechtstreeks in Vim werkt prima, en werkt als transparante compressie.
Antwoord
Het .xz
-formaat biedt een aantal geavanceerde functies. Tegelijkertijd is het eenvoudig genoeg gehouden om in veel embedded systemen te kunnen worden gebruikt. Hier is een samenvatting van de functies:
- Willekeurig lezen: de gegevens kunnen worden opgesplitst in onafhankelijk gecomprimeerde blokken. Elke -bestand bevat een index van de blokken, waardoor lezen met beperkte willekeurige toegang mogelijk is wanneer de blokgrootte klein genoeg is.
- Integriteitscontroles: de integriteit van alle headers wordt altijd beschermd met CRC32 . De integriteit van de feitelijke gegevens kan worden geverifieerd met CRC32, CRC64, SHA-256 …
- Aaneenschakeling: net als bij
.gz
en.bz2
bestanden, is het mogelijk om.xz
bestanden zoals ze zijn. De decompressor kan een aaneengeschakeld bestand decomprimeren alsof het een gewoon.xz
-bestand is met een enkele stroom. - Opvulling: binaire nullen kunnen worden toegevoegd aan
.xz
bestanden om ze op te vullen, bijv een blok op een back-uptape. De opvulling moet een veelvoud van vier bytes zijn, omdat de grootte van elk geldig.xz
-bestand een veelvoud is van vier bytes.