GNU/Linux >> Tutoriels Linux >  >> Linux

Lzma Vs Bzip2 - Meilleure compression que bzip2 sous UNIX / Linux

Lzma signifie Algorithme de chaîne de Lempel-Ziv-Markov. Lzma est un outil de compression comme bzip2 et gzip pour compresser et décompresser des fichiers. Il a tendance à être beaucoup plus rapide et efficace que la compression bzip. Comme nous le savons, le taux de compression gzip est pire que bzip2 (et lzma).

Dans cet article, comprenons comment utiliser lzma, un utilitaire de compression efficace qui offre un taux de compression nettement meilleur et un fonctionnement plus rapide.

Compressez le fichier texte d'entrée à l'aide de lzma -c

$ lzma  -c --stdout  sample.txt  >sample.lzma

Décompressez le fichier lzma en utilisant l'option -d

$ lzma -d –stdout sample.lzma >sample.txt

Comparaison entre les outils de compression bzip2 et lzma

Pour comprendre l'efficacité de lzma, comprimons/décompressons un sample.txt de 1 Mo avec lzma et bzip2 et comparons le résultat. Ces tests ont été effectués avec la machine qui dispose de 1 Go de RAM et dont le processeur est un Pentium 4.

Taille du fichier d'entrée sample.txt :

$ ls -l sample.txt
-rw-r--r-- 1 bala bala   1048576 2010-05-14 19:43 sample.txt

Remarque : Nous avons utilisé la commande time devant chaque commande de compression et de décompression pour obtenir l'utilisation du processeur de la commande.

Compressez le fichier sample.txt à l'aide de bzip2

Compressez le fichier d'entrée avec la commande bzip2 et il ne nécessite pas l'option lors de la compression.

$ time bzip2  sample.txt

real    0m27.874s
user    0m13.981s
sys     0m0.148s

$ ls -l sample.txt.bz2
-rw-r--r-- 1 bala bala      1750 2010-05-14 19:43 sample.txt.bz2

Après bzip2 compression, la taille du fichier de sortie est de 1750 octets .

Décompressez le fichier sample.txt à l'aide de bunzip2

Décompressez le fichier compressé avec l'utilitaire bunzip2 et il n'a également besoin d'aucune option pour être transmis.

$ bunzip2  sample.txt.bz2

real    0m0.232s
user    0m0.128s
sys     0m0.020s

Compresser le fichier sample.txt à l'aide de lzma

Compressons maintenant le fichier sample.txt à l'aide de la commande lzma avec les options suivantes :

  • -c pour compresser
  • –stdout pour imprimer la sortie compressée dans stdout
$ time lzma  -c --stdout  sample.txt >sample.lzma

real    0m2.035s
user    0m1.544s
sys     0m0.132s

$ ls -l sample.lzma
-rw-r--r-- 1 bala bala       543 2010-05-14 19:48 sample.lzma

Après la compression, lzma produit le fichier de sortie avec une taille de 543 octets , qui est comparativement inférieur à la commande bzip2. De plus, comme vu ci-dessus, le temps CPU utilisé par lzma est bien inférieur à celui de bzip2.

Décompressez le fichier sample.txt à l'aide de lzma

Décompressez le fichier *.lzma à l'aide de la commande lzma avec les options suivantes :

  • -d pour compresser
  • –stdout pour imprimer la sortie décompressée dans stdout
$ time lzma -d --stdout sample.lzma >sample.txt

real    0m0.043s
user    0m0.016s
sys     0m0.004s

Comme vu ci-dessus, la décompression effectuée par lzma est plusieurs fois plus rapide que bzip2

Différents niveaux de compression Lzma

  • Lzma fournit la plage de compression de -1 à -9.
  • -9 est le taux de compression le plus élevé, ce qui nécessite un certain temps et des ressources système pour le faire. Ces ratios ne s'appliquent pas à la décompression.
  • -1 est le taux de compression le plus bas et il s'exécute beaucoup plus rapidement.

Procédez comme suit pour effectuer une compression lzma rapide en utilisant le taux de compression de bas niveau :

$ lzma -1 -c --stdout  sample.txt >sample.lzma

$ ls -l sample.lzma

-rw-r--r-- 1 bala bala       548 2010-05-14 20:47 sample.lzma

Remarque : -fast est l'alias de -1.

-9 est le taux de compression de niveau le plus élevé et il faut plus de temps pour compresser que le taux de niveau bas. Procédez comme suit pour effectuer une compression intensive en utilisant le taux de compression de haut niveau :

$ lzma -9 -c --stdout  sample.txt >sample.lzma

$ ls -l sample.lzma
-rw-r--r-- 1 bala bala       543 2010-05-14 20:55 sample.lzma

Remarque : -best est un alias de -9.


Linux
  1. Linux vs Unix :Quelle est la différence ?

  2. Migration d'Unix vers Linux

  3. Pourquoi Printf est-il meilleur qu'Echo ?

  4. Linux – Répertoires standard et/ou communs sur les systèmes Unix/linux ?

  5. Linux – Les différents noyaux Linux/unix sont-ils interchangeables ?

Commande AWK sous Linux/Unix

Commande mkdir sous Linux/Unix

Linux contre Unix

Commande Grep sous Linux/UNIX

Commande ls sous Linux/UNIX

commande cp sous Linux/UNIX