57 votes

La meilleure méthode de compression ?

Je veux compresser un dossier de 16 Go, mais quelle est la meilleure méthode ? tar.gz ? tar.bz2 rar ? 7z ? L'archive serait-elle plus petite si je la compressais d'abord avec une méthode, puis si je copiais l'archive compressée dans un nouveau dossier, puis si je la recompressais avec une autre méthode ? J'ai besoin de le faire tenir sur un DVD (la sortie est peut-être de 8,5 Go, je ne me souviens pas) mais mettre "4370 Mo" fait que le fichier compressé est de 2,5 Go.

BTW, quelle est la méthode de compression par défaut sur Ubuntu ?

75voto

Rinzwind Points 270388

La valeur par défaut est gz . Les meilleurs résultats que j'obtiens avec 7z cependant.

Voici les résultats pour un conteneur virtualbox de 1,4 Go :

enter image description here

Meilleure compression - taille en MB :

7z 493
rar 523
bz2 592
lzh 607
gz 614
Z 614
zip 614
.arj 615
lzo 737
zoo 890

Source :

enter image description here

Installer

 sudo apt-get install p7zip-full

14voto

user258532 Points 1128

Cette question est très ancienne, mais peut-être que quelqu'un trouvera cette solution utile :

Utilisez rzip après tar . Il compresse d'abord les blocs de données de 900 Mo à l'aide d'une méthode de dictionnaire, puis il transmet les données nettoyées à l'unité de gestion de l'information de la Commission européenne. bzip2 . Il est beaucoup plus rapide que les autres outils de compression forte ( bzip2 , lzma ), et certains fichiers qu'il compresse encore mieux que bzip2 o lzma .

Oui, gz est l'outil de compression par défaut sous Linux. Il est rapide, et malgré son âge, il donne encore de très bons résultats dans la compression de fichiers texte comme le code source. Un autre outil standard est bzip2 mais il est beaucoup plus lent.

Ajout : lrzip est plus récent et étend le principe de rzip. Il prend même en charge des tailles de bloc illimitées, et un choix de méthodes de compression (LZMA, Bzip2, Gzip, LZO, ZPAQ ou aucune). LZMA est la norme. Pour la sauvegarde ou si vous partagez beaucoup de données avec d'autres utilisateurs de Linux/BSD, il peut s'avérer très pratique.

2voto

J'opte pour un LZMA . Il a le plus petit surcharge d'octets et a un fort taux de compression. Comparaison entre ZIP et LZMA : J'ai généré deux fichiers seq.txt avec le code PHP

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[$i%10].($i%10==9 ? "\n":""); file_put_contents('seq.txt', $str);

qui contient des blocs répétitifs de 0 9 chiffres ~ 1Mb de données et rnd.txt avec le code PHP

$s = '0123456789'; $str = ''; for ($i=0; $i < 1000000; $i++) $str .= $s[rand(0,9)].($i%10==9 ? "\n":""); file_put_contents('rnd.txt', $str);

qui contient des blocs aléatoires de 0 9 chiffres ~ 1Mb de données.

Résultats de la compression :

  • seq.txt, rnd.txt - 1100000 octets
  • seq.txt.zip - 2502 octets
  • rnd.txt.zip - 515957 octets
  • seq.txt.lzma - 257 octets
  • rnd.txt.lzma - 484939 octets

Rapport de compression :

  • ZIP -> "seq.txt" -> 99,772%.
  • ZIP -> "rnd.txt" -> 53,094%.
  • LZMA -> "seq.txt" -> 99,976%.
  • LZMA -> "rnd.txt" -> 55,914%.

Ainsi, LZMA a compressé les données séquentielles de 0,2 % plus efficacement que le ZIP.
et des données aléatoires 2,8 % plus efficacement que le ZIP.

Pour sûr, LZMA gagne !

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X