Tra xz, gzip e bzip2, quale algoritmo di compressione fornisce la dimensione del file più piccola e la velocità più alta quando si comprimono tarball abbastanza grandi?
Tra xz, gzip e bzip2, quale algoritmo di compressione fornisce la dimensione del file più piccola e la velocità più alta quando si comprimono tarball abbastanza grandi?
Risposte:
Nel mio stress test, ho compresso 464 megabyte di dati utilizzando i tre formati elencati. Gzip ha restituito un file di 364 MB. Bzip2 ha restituito un file da 315 MB. Xz ha restituito un file di 254 MB. Ho anche fatto un semplice test di velocità:
Compressione:
1: Gzip
2: Xz
3: Bzip2 (il mio fan stava soffiando un bel po 'mentre stava succedendo, indicando che il mio Athlon II era abbastanza teso)
Decompressione:
1: Xz
2: Gzip
3: Bzip2
Tutti questi test sono stati eseguiti con l'ultima versione di 7-Zip.
Xz è il formato migliore per una compressione completa, mentre Gzip è molto buono per la velocità. Bzip2 è decente per il suo rapporto di compressione, anche se probabilmente al suo posto dovrebbe essere usato xz.
bzip2 -9 <file>
?
Ho fatto il mio benchmark sull'immagine vmdk di installazione Linux 1.1GB:
rar =260MB comp= 85s decomp= 5s
7z(p7z)=269MB comp= 98s decomp=15s
tar.xz =288MB comp=400s decomp=30s
tar.bz2=382MB comp= 91s decomp=70s
tar.gz =421MB comp=181s decomp= 5s
tutti i livelli di compressione su max, CPU Intel I7 3740QM, memoria 32GB 1600, sorgente e destinazione su disco RAM
In genere uso rar o 7z per archiviare file normali come documenti.
e per l'archiviazione dei file di sistema uso .tar.gz o .tar.xz da file-roller o tar con le opzioni -z o -J insieme a --preserve per comprimere nativamente con tar e conservare i permessi (anche in alternativa .tar.7z o .tar.rar può essere utilizzato)
aggiornamento: poiché tar preserva solo le normali autorizzazioni e non gli ACL, è possibile utilizzare anche .7z più autorizzazioni di backup e ripristino e ACL manualmente tramite getfacl e sefacl che sembra essere l'opzione migliore sia per l'archiviazione dei file che per il backup dei file di sistema perché sarà pieno preservare autorizzazioni e ACL, ha checksum, test di integrità e funzionalità di crittografia, l'unico aspetto negativo è che p7zip non è disponibile ovunque
Penso che questo articolo fornisca risultati molto interessanti.
http://pokecraft.first-world.info/wiki/Quick_Benchmark:_Gzip_vs_Bzip2_vs_LZMA_vs_XZ_vs_LZ4_vs_LZO
I formati più efficienti in termini di dimensioni sono xz e lzma, entrambi con il parametro -e passato.
Gli algoritmi più veloci sono di gran lunga lzop e lz4 che possono produrre un livello di compressione non molto lontano da gzip in 1,3 secondi mentre gzip impiegava 8,1 secondi. Il rapporto di compressione è 2,8 per lz4 e 3,7 per gzip.
Ecco alcuni risultati che ho estratto da questo articolo:
Gzip: 8.1s @ 3.7
lz4: 1.3s @ 2.8
xz: 32.2s @ 5.43
xz -e: 6m40 @ 7.063
Quindi, se hai davvero disperatamente bisogno di velocità, lz4 è fantastico e fornisce comunque un rapporto di compressione 2.8.
Se hai disperatamente bisogno di risparmiare il byte, xz al massimo livello di compressione (9) fa il lavoro migliore per i file di testo come l'origine del kernel. Tuttavia, è molto lungo e richiede molta memoria.
Un buono dove necessario per ridurre al minimo l'impatto sul tempo E sullo spazio è gzip. Questo è quello che userei per fare backup giornalieri manuali di un ambiente di produzione.