Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 21/08/2016, à 11:48

Lilian877

Comparaison de performances XZ et 7z

Bonjour smile

Ca n'est pas réellement un problème, mais plutôt une curiosité. Hier en voulant compresser un dossier "Sauvegardes" de taille 399 Mo sur mon serveur, j'ai essayé deux formats de compression : le tar.xz et le .7z. J'ai tout d'abord entré cette commande :

tar cvf Sauvegardes.tar Sauvegardes/

pour obtenir une archive tar à partir du dossier Sauvegardes. Puis celle-ci :

xz -9ev Sauvegardes.tar

pour compresser cette archive en utilisant XZ.
J'obtiens finalement un fichier compressé de 223 Mo. C'est déjà bien, la taille du dossier d'origine a presque été réduite de moitié. Cette opération aura pris 7 minutes.

Maintenant, pour compresser en .7z :

7z a Sauvegardes.7z Sauvegardes/

J'obtiens cette fois-ci un fichier compressé de 134 Mo, XZ est à quatre pattes. On passe du simple au tiers avec p7zip, sans compter que ça n'aura duré que 2 minutes !

Je m'attendais pourtant à des résultats très similaires, pour ne pas dire les mêmes, étant donné que ces deux formats utilisent par défaut l'algorithme de compression LZMA2. Or là, XZ avec son plus fort taux de compression (option -9e) est vraiment très loin de p7zip avec son taux de compression réglé sur "normal" !
Quelqu'un de plus renseigné que moi pourrait-il m'expliquer la raison de cette différence ?
Merci ! wink

Dernière modification par Lilian877 (Le 21/08/2016, à 11:51)

Hors ligne

#2 Le 21/08/2016, à 12:31

pingouinux

Re : Comparaison de performances XZ et 7z

Bonjour,
As-tu essayé

tar cfvz Sauvegardes.tgz Sauvegardes/

qui est l'équivalent de tar  suivi de gzip ?

Hors ligne

#3 Le 21/08/2016, à 14:15

Compte anonymisé

Re : Comparaison de performances XZ et 7z

Bonjour,

j'ai fait un test chez moi :

$ time xz -9ev rewolf.tar
rewolf.tar (1/1)
  100 %       186,7 MiB / 420,6 MiB = 0,444   1,4 MiB/s       4:51             

real	4m51.418s
user	4m50.696s
sys	0m0.664s
$ time 7z a rewolf.7z rewolf.tar

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=fr_FR.utf8,Utf16=on,HugeFiles=on,8 CPUs)
Scanning

Creating archive rewolf.7z

Compressing  rewolf.tar      

Everything is Ok

real	1m48.035s
user	3m16.124s
sys	0m1.160s
$ ls -l rewolf.*
-rw-r--r-- 1 test test 199615974 août  21 14:40 rewolf.7z
-rw-r--r-- 1 test test 441006080 août  21 14:38 rewolf.tar
-rw-r--r-- 1 test test 195725496 août  21 14:33 rewolf.tar.xz
$ xz --version
xz (XZ Utils) 5.1.0alpha
liblzma 5.1.0alpha

il s'avère que xz ne semble pas gérer le multi-threading (chez moi il y a avait juste un processeur à 100% tout le long). Ce qui expliquerait la différence de temps.

La différence de taille semble plus étonnante. Quel sont le type de fichier contenu dans le dossier Sauvegarde ?

Cordialement

#4 Le 21/08/2016, à 15:41

Lilian877

Re : Comparaison de performances XZ et 7z

pingouinux a écrit :

Bonjour,
As-tu essayé

tar cfvz Sauvegardes.tgz Sauvegardes/

qui est l'équivalent de tar  suivi de gzip ?

Je ne l'ai pas précisé, mais oui j'ai essayé également de compresser avec gzip et bzip2, mais ils créent tous les deux des archives compressées de plus grande taille que XZ bien qu'étant moins longs à l'exécution (272 Mo pour gzip et 267 pour bzip2).

Anonyme68 a écrit :

il s'avère que xz ne semble pas gérer le multi-threading (chez moi il y a avait juste un processeur à 100% tout le long). Ce qui expliquerait la différence de temps.

La différence de taille semble plus étonnante. Quel sont le type de fichier contenu dans le dossier Sauvegarde ?

Cordialement

C'est étrange parce que le LZMA2 a de supérieur au LZMA qu'il peut utiliser plus de 2 cores du processeur, sauf erreur de ma part... D'autre part, le serveur sur lequel j'ai exécuté les commandes ne possède qu'un seul core de processeur.
Il y a un peu de tout, des documents texte, quelques fichiers audio, des vidéos et des images.
Je dirais que la différence de temps vient en grande partie du paramètre de compression pour xz (-9e), je viens d'essayer avec le paramètre par défaut (-6), le temps requis est abaissé à 3min15s pour obtenir un fichier compressé de 239 Mo. Ca reste bien plus long que de compresser à l'aide de p7zip et pour un résultat clairement moins bon.

Peut-être que le problème vient tout simplement de là, mais sommes-nous bien d'accord qu'avec un même algorithme de compression (en l'occurence LZMA2), la compression devrait être la même bien qu'il soit utilisé par 2 programmes différents ?

Je vous remercie pour vos réponses rapides wink

Hors ligne

#5 Le 21/08/2016, à 15:58

Rufus T. Firefly

Re : Comparaison de performances XZ et 7z

Salut,

Ces algorithmes sont paramétrables et les paramètres par défaut sont les résultats de compromis qui dépendent en grande partie du genre de fichiers qu'ils sont censés traiter le plus fréquemment.
Par exemple : la méthode ZIP réduit la taille d’un fichier audio de qualité CD de 20 à 40 %, alors que FLAC obtient des taux de 30 à 70 %. C'est le même genre d'algorithmes, mais FLAC tient compte de propriétés particulières des fichiers wav., alors que ZIP est généraliste.


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#6 Le 21/08/2016, à 16:18

Lilian877

Re : Comparaison de performances XZ et 7z

Rufus T. Firefly a écrit :

Salut,

Ces algorithmes sont paramétrables et les paramètres par défaut sont les résultats de compromis qui dépendent en grande partie du genre de fichiers qu'ils sont censés traiter le plus fréquemment.
Par exemple : la méthode ZIP réduit la taille d’un fichier audio de qualité CD de 20 à 40 %, alors que FLAC obtient des taux de 30 à 70 %. C'est le même genre d'algorithmes, mais FLAC tient compte de propriétés particulières des fichiers wav., alors que ZIP est généraliste.

Ca me semble être une partie de la réponse au problème, en effet.
Pour tester, j'ai créé un fichier de texte brut de 36 Mo et je l'ai compressé à l'aide de XZ et p7zip. Résultat : le même pour les deux, 5,5 Ko, avec même un léger avantage pour le xz quand on regarde du côté des octets. En revanche, XZ prend 8,3 secondes et p7zip 4,6 secondes, ce qui reste assez bizarre...
Donc il apparaît que p7zip compresse mieux les fichiers multimédia qui sont dans mon dossier. Affaire de paramétrage d'algorithme, peut-être.
Je pense passer le sujet en résolu si personne n'a plus rien à ajouter smile

Hors ligne

#7 Le 21/08/2016, à 16:27

Rufus T. Firefly

Re : Comparaison de performances XZ et 7z

Lilian877 a écrit :

En revanche, XZ prend 8,3 secondes et p7zip 4,6 secondes, ce qui reste assez bizarre...

Quelqu'un a déjà donné une explication possible : le multi-threading.
Parce qu'il y a l'algorithme lui-même, qui est capable ou pas de le faire, mais après, il y a l'implémentation de l'algorithme dans un logiciel (XZ, p7zip et autres) avec ou sans cette possibilité, si elle existe. Et peut-être même qu'il y a une option qui l'utilise ou pas, par défaut.


La provocation est une façon de remettre la réalité sur ses pieds. (Bertolt Brecht)
Il n'y a pas de route royale pour la science et ceux-là seulement ont chance d'arriver à ses sommets lumineux qui ne craignent pas de se fatiguer à gravir ses sentiers escarpés. (Karl Marx)
Il est devenu plus facile de penser la fin du monde que la fin du capitalisme

Hors ligne

#8 Le 21/08/2016, à 21:11

Compte anonymisé

Re : Comparaison de performances XZ et 7z

si tu as un seul core, une autre explication pour le temps (voir la parenthèse finale)

man xz a écrit :

-e, --extreme
Modify the compression preset (-0 ... -9) so that a little bit better compression ratio can be achieved without increasing memory usage of the compressor or decompressor (exception: compressor memory usage may increase a little with presets -0 ... -2). The downside is that the compression time will increase dramatically (it can easily double).

évidement si tu veux gagner un max de place, il vaut mieux utiliser des algorithmes adaptés pour chaque type de fichier.

J'avais fait un script pas mal pour ça lien. Bon j'ai pas eu trop de retour, donc a utiliser avec précaution.