# Xz

**URL:** <https://www.debian-fr.org/t/xz/29969>\
**Category:** Trucs et Astuces\
**Created:** [Février 21, 2016, 12:22 UTC](https://www.debian-fr.org/t/xz/29969 "2016-02-21T00:22:56Z")\
**Posts on this page:** 14\
**Page:** 1

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:22 UTC](https://www.debian-fr.org/t/xz/29969/1 "2016-02-21T00:22:56Z")

</div>

J’ai découvert il y a quelques temps le format xz suite à cette dépêche : [linuxfr.org//2010/11/04/27539.html](https://linuxfr.org//2010/11/04/27539.html)

C’est un format de compression au même titre que bzip2 ou gnuzip. La différence, c’est qu’il est nettement plus efficace que les deux précédents sur deux points :  
[ul]  
[li]le taux de compression est plus élevé que bzip2,[/li]  
[li]la vitesse de décompression est très faible.[/li][/ul]

Je ne sais pas sous Lenny, mais sous Squeeze vous l’avez déjà installé. Personnellement je m’en sers à travers tar donc pour la compression :

```auto

```

et la décompression :

```auto

```

Si vous utilisé tar en version 1.24 ou superieur vous pouvez décompresser sans spécifier le format :

```auto

```

Je n’ai pas vraiment de chiffre à vous donner parce que ça dépend fortement des fichiers, mais il m’est arrivé de diviser par plus de quatre la taille d’une archive, là où bzip2 n’arrivait pas à gagner grand-chose.

---

<div class="post-metadata">

**Author:** ![nono471](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/6f9a4e/32.png) [@nono471](https://www.debian-fr.org/u/nono471)\
**Post date:** [Février 21, 2016, 12:22 UTC](https://www.debian-fr.org/t/xz/29969/2 "2016-02-21T00:22:56Z")

</div>

Salut,

C’est d’ailleurs le format de compression retenu par archlinux pour ses paquets .  
 ![:114](https://www.debian-fr.org/uploads/default/original/1X/59912b0b680868015ba2afb82b3d05590e9739e4.gif "pere-noel")

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:23 UTC](https://www.debian-fr.org/t/xz/29969/3 "2016-02-21T00:23:01Z")

</div>

Logique puisque Slackware l’utilise.

---

<div class="post-metadata">

**Author:** ![ggoodluck47](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/c67d28/32.png) [@ggoodluck47](https://www.debian-fr.org/u/ggoodluck47)\
**Post date:** [Février 21, 2016, 12:23 UTC](https://www.debian-fr.org/t/xz/29969/4 "2016-02-21T00:23:01Z")

</div>

Salut,

[quote]  
la vitesse de décompression est très faible.[/quote]

Je pense à un lapsus 🙂

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 12:23 UTC](https://www.debian-fr.org/t/xz/29969/5 "2016-02-21T00:23:26Z")

</div>

Si c’est nettement plus long.

[code]francois@totoche:/tmp$ time tar cJf toto.xz ~/Annee2009  
tar: Suppression de « / » au début des noms des membres

real 0m35.257s  
user 0m32.938s  
sys 0m1.384s  
francois@totoche:/tmp$ time tar czf toto.tgz ~/Annee2009  
tar: Suppression de « / » au début des noms des membres

real 0m3.917s  
user 0m3.388s  
sys 0m0.120s  
francois@totoche:/tmp$ time tar xJf toto.xz

real 0m4.621s  
user 0m4.132s  
sys 0m0.248s  
francois@totoche:/tmp$ time tar xzf toto.tgz

real 0m0.974s  
user 0m0.712s  
sys 0m0.200s

francois@totoche:/tmp$ ls -l toto.tgz toto.xz  
-rw-r–r-- 1 francois francois 42033089 déc. 27 14:38 toto.tgz  
-rw-r–r-- 1 francois francois 40641496 déc. 27 14:38 toto.xz  
francois@totoche:/tmp$  
[/code]je ne suis pas sûr que ça vaille le coup

Pour 7z, ça donne

[code]francois@totoche:/tmp$ time 7z a toto.tar.7z ~/Annee2009

7-Zip 4.58 beta Copyright © 1999-2008 Igor Pavlov 2008-05-05  
[…]  
Everything is Ok

real 0m19.128s  
user 0m27.874s  
sys 0m0.528s

francois@totoche:/tmp$ ls -l toto.\*  
-rw-r–r-- 1 francois francois 40296502 déc. 27 14:43 toto.tar.7z  
-rw-r–r-- 1 francois francois 40641496 déc. 27 14:38 toto.xz  
francois@totoche:/tmp$ time 7z x toto.tar.7z

7-Zip 4.58 beta Copyright © 1999-2008 Igor Pavlov 2008-05-05  
p7zip Version 4.58 (locale=fr\_FR.UTF-8,Utf16=on,HugeFiles=on,2 CPUs)

Processing archive: toto.tar.7z  
real 0m5.118s  
user 0m4.580s  
sys 0m0.192s  
francois@totoche:/tmp$

[/code]  
Qui me parait mieux.  
Il y a un comparatif ici [rlwpx.free.fr/WPFF/comploc.htm](http://rlwpx.free.fr/WPFF/comploc.htm)

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:23 UTC](https://www.debian-fr.org/t/xz/29969/6 "2016-02-21T00:23:30Z")

</div>

Chez moi :

[code]~ % du -sh Projets  
195M Projets  
~ [2]% time tar cJf Projets.txz Projets  
tar cJf Projets.txz Projets 19,45s user 256,21s system 100% cpu 4:34,90 total  
~ % time tar cjf Projets.tbz Projets  
tar cjf Projets.tbz Projets 241,86s user 2,38s system 99% cpu 4:05,34 total  
~ % ls -sh Projets.t\*  
146M Projets.tbz 123M Projets.txz  
~ % cp Projets.t\* /tmp  
Flags -vtiRP  
1/2 - Projets.tbz  
2/2 - Projets.txz

2 files copied, 0 failed  
~ % /tmp  
/tmp % time tar xf Projets.txz  
tar xf Projets.txz 18,41s user 2,61s system 102% cpu 20,468 total  
/tmp % rm -rf Projets/  
/tmp % time tar xf Projets.tbz  
tar xf Projets.tbz 58,68s user 4,38s system 99% cpu 1:03,08 total[/code]  
La complexité n’est pas beaucoup plus grande. Le taux de compression est superieur et la vitesse de décompression est sans égale.

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 12:23 UTC](https://www.debian-fr.org/t/xz/29969/7 "2016-02-21T00:23:30Z")

</div>

Tu compare à bz2 qui semble assez mauvais (je ne l’avais pas sélectionné car je ne l’utilise pas vraiment, j’aboutis en gros aux mêmes chiffres), tu as essayé avec gzip et 7z?

(Je viens de lire que xz est le «successeur» de 7z, c’est bizarre ces différences chez moi du coup, tu as les mêmes?)

---

<div class="post-metadata">

**Author:** ![kna](https://www.debian-fr.org/user_avatar/www.debian-fr.org/kna/32/5623_2.png) [@kna](https://www.debian-fr.org/u/kna)\
**Post date:** [Février 21, 2016, 12:23 UTC](https://www.debian-fr.org/t/xz/29969/8 "2016-02-21T00:23:33Z")

</div>

En vitesse pure, gz coiffe toujours les autres formats au poteau. Ça reste le format le plus avantageux pour des fichiers déjà compressés (images, audio, vidéo) dont on ne peut de toute façon pas réduire sensiblement la taille.

Mais xz arrive à avoir une vitesse de décompression proche de gz à l’usage, tout en ayant un taux de compression supérieur à bz2.

```auto
$ du -h everything.log 
1,8M	everything.log

$ time gzip everything.log 

real	0m0.045s
user	0m0.040s
sys	0m0.003s
$ du -h everything.log.gz 
248K	everything.log.gz
$ time gzip -d everything.log.gz 

real	0m0.012s
user	0m0.010s
sys	0m0.000s
$ time bzip2 everything.log 

real	0m0.365s
user	0m0.360s
sys	0m0.003s
$ du -h everything.log.bz2 
180K	everything.log.bz2
$ time bzip2 -d everything.log.bz2 

real	0m0.053s
user	0m0.043s
sys	0m0.007s
$ time xz everything.log 

real	0m0.600s
user	0m0.550s
sys	0m0.027s
$ du -h everything.log.xz 
156K	everything.log.xz
$ time xz -d everything.log.xz 

real	0m0.022s
user	0m0.013s
sys	0m0.007s
```

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 12:23 UTC](https://www.debian-fr.org/t/xz/29969/9 "2016-02-21T00:23:35Z")

</div>

En reprenant un exemple avec 480 fichiers Tex, xz s’en sort mieux et c’est vrai qu’il est nettement mieux que bz2. Pour le taux de compression, cette fois, il n’y a pas photo. Il faudrait faire plusieurs essais, visiblement ça dépend. Par contre visiblement, il est peu solide à une altération de l’archive (seul gz s’en tire bien là dessus) donc soit il faut utiliser par2 soit c’est à proscrire pour le backup.

[code]francois@totoche:~/Tex$ time tar cJf /tmp/ar.txz \*.lyx

real 0m6.323s  
user 0m5.868s  
sys 0m0.180s  
francois@totoche:~/Tex$ time tar czf /tmp/ar.tgz \*.lyx

real 0m0.630s  
user 0m0.484s  
sys 0m0.040s  
francois@totoche:~/Tex$ time tar cjf /tmp/ar.tar.bz2 \*.lyx

real 0m3.389s  
user 0m3.176s  
sys 0m0.072s  
francois@totoche:~/Tex$ time 7z a /tmp/ar.7z \*.lyx

real 0m4.800s  
user 0m4.060s  
sys 0m0.240s  
francois@totoche:~/Tex$ cd /tmp  
francois@totoche:/tmp$ ls -l ar.\*  
-rw-r–r-- 1 francois francois 633399 déc. 28 09:37 ar.7z  
-rw-r–r-- 1 francois francois 784647 déc. 28 09:37 ar.tar.bz2  
-rw-r–r-- 1 francois francois 1371478 déc. 28 09:37 ar.tgz  
-rw-r–r-- 1 francois francois 591968 déc. 28 09:36 ar.txz  
francois@totoche:/tmp$ time 7z x ar.7z

Everything is Ok

Files: 480  
Size: 9769898  
Compressed: 633399

real 0m0.614s  
user 0m0.224s  
sys 0m0.088s  
francois@totoche:/tmp$ time tar xjf ar.tar.bz2

real 0m0.789s  
user 0m0.552s  
sys 0m0.100s  
francois@totoche:/tmp$ time tar xzf ar.tgz

real 0m0.254s  
user 0m0.100s  
sys 0m0.088s  
francois@totoche:/tmp$ time tar xJf ar.txz

real 0m0.482s  
user 0m0.144s  
sys 0m0.092s  
francois@totoche:/tmp$  
[/code]

---

<div class="post-metadata">

**Author:** ![MisterFreez](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/m/bb73d2/32.png) [@MisterFreez](https://www.debian-fr.org/u/MisterFreez)\
**Post date:** [Février 21, 2016, 12:23 UTC](https://www.debian-fr.org/t/xz/29969/10 "2016-02-21T00:23:36Z")

</div>

De toute manière par définition la compression c’est pas terrible pour le backup. Ce qui est le plus fréquent est codé de manière plus petite si une alteration arrive sur cette petite partie, l’archive est bousillée.

Moi xz m’a permis d’envoyer par mail des pièces jointes qui au départ faisaient 40Mio (environ 5Mio après compression).

C’est difficile à juger car le taux de compression dépend de l’entropie des données.

---

<div class="post-metadata">

**Author:** ![Glorf](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/g/d6d6ee/32.png) [@Glorf](https://www.debian-fr.org/u/Glorf)\
**Post date:** [Février 21, 2016, 12:23 UTC](https://www.debian-fr.org/t/xz/29969/11 "2016-02-21T00:23:41Z")

</div>

Après test avec des fichiers images, c’est une victoire de gzip pour ma part :  
Il est vraiment plus rapide à la compression(facteur 10 avec XZ et 7Z, 4 avec bunzip qui compresse moins bien), idem à la décompression (facteur 4 avec XZ et 7Z), il compresse juste moins bien (mais la différence est pas énorme)

[code]glorf@debian-papa-desktop:~/Images$ time tar cJf /tmp/images/ar.txz \*.png

real 0m24.164s  
user 0m23.905s  
sys 0m0.376s  
glorf@debian-papa-desktop:~/Images$ time tar czf /tmp/images/ar.tgz \*.png

real 0m2.320s  
user 0m2.236s  
sys 0m0.124s  
glorf@debian-papa-desktop:~/Images$ time tar cjf /tmp/images/ar.tar.bz2 \*.png

real 0m9.625s  
user 0m9.513s  
sys 0m0.156s  
glorf@debian-papa-desktop:~/Images$ time 7z a /tmp/ar.7z _.png  
real 0m12.675s  
user 0m25.466s  
sys 0m0.496s  
glorf@debian-papa-desktop:~/Images$ cd /tmp/images/  
glorf@debian-papa-desktop:/tmp/images$ ls -l ar._  
-rw-r–r-- 1 glorf glorf 41637104 28 déc. 14:46 ar.7z  
-rw-r–r-- 1 glorf glorf 42088107 28 déc. 14:45 ar.tar.bz2  
-rw-r–r-- 1 glorf glorf 41919611 28 déc. 14:45 ar.tgz  
-rw-r–r-- 1 glorf glorf 41676480 28 déc. 14:45 ar.txz  
glorf@debian-papa-desktop:/tmp/images$ time 7z x ar.7z  
Everything is Ok

Files: 82  
Size: 42329344  
Compressed: 41637104

real 0m4.358s  
user 0m4.280s  
sys 0m0.072s  
glorf@debian-papa-desktop:/tmp/images$ time tar xjf ar.tar.bz2

real 0m4.143s  
user 0m4.076s  
sys 0m0.196s  
glorf@debian-papa-desktop:/tmp/images$ time tar xzf ar.tgz

real 0m0.427s  
user 0m0.364s  
sys 0m0.188s  
glorf@debian-papa-desktop:/tmp/images$ time tar xJf ar.txz

real 0m1.483s  
user 0m1.428s  
sys 0m0.172s[/code]

---

<div class="post-metadata">

**Author:** ![kilicool](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/k/c89c15/32.png) [@kilicool](https://www.debian-fr.org/u/kilicool)\
**Post date:** [Février 21, 2016, 12:25 UTC](https://www.debian-fr.org/t/xz/29969/12 "2016-02-21T00:25:29Z")

</div>

sujet fort intéressant ! pour ma part je cherche aussi le meilleur compresseur pour des fichier de la taille de 10 a 15 GO (fichier texte, extraction SQL (base de données))

Une idée ?

Merci

---

<div class="post-metadata">

**Author:** ![fran.b](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/f/d78d45/32.png) [@fran.b](https://www.debian-fr.org/u/fran.b)\
**Post date:** [Février 21, 2016, 12:25 UTC](https://www.debian-fr.org/t/xz/29969/13 "2016-02-21T00:25:32Z")

</div>

As tu des impératifs de délais dans la décompression et la compression, en tout cas apparement c’est entre xz et gz suivant cette contrainte.

---

<div class="post-metadata">

**Author:** ![neos](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/n/ba9def/32.png) [@neos](https://www.debian-fr.org/u/neos)\
**Post date:** [Février 21, 2016, 12:35 UTC](https://www.debian-fr.org/t/xz/29969/14 "2016-02-21T00:35:47Z")

</div>

L’option XZ est même intégré au kernel 2.6.38-rc1, pour compresser l’image.
