#1 Le 21/08/2016, à 11:48
- Lilian877
Comparaison de performances XZ et 7z
Bonjour
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 !
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
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).
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
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
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
Hors ligne
#7 Le 21/08/2016, à 16:27
- Rufus T. Firefly
Re : Comparaison de performances XZ et 7z
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)
-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.