Le projet Pack a tenté de créer un format d'archivage de fichiers basé sur la bibliothÚque SQLite et l'algorithme de compression ZSTD (Zstandard). Le prototype développé, écrit en Pascal et diffusé sous la licence Apache 2.0, a surpassé en vitesse les archiveurs les plus courants, tandis que son fonctionnement se résumait à lire les données, compresser avec la bibliothÚque libzstd et effectuer des opérations SQL pour ajouter les données compressées dans un fichier avec une base de données SQLite.
Lors de la compression d'un rĂ©pertoire de 81 000 fichiers, d'une taille totale de 1,25 Go, pack s'est avĂ©rĂ© 112 fois plus rapide que l'utilitaire ZIP, rĂ©alisant l'opĂ©ration en 1,3 seconde contre 146 secondes pour ZIP. La taille de l'archive obtenue avec pack Ă©tait 23 % plus petite (194 Mo pour Pack et 253 Mo pour ZIP). Ă titre de comparaison, l'outil tar a rĂ©alisĂ© l'archivage en 4,7 secondes sans compression et en 28,5 secondes avec compression par la mĂ©thode gzip, l'archiveur RAR a terminĂ© le test en 27,5 secondes, tandis que 7z a pris 54,2 secondes. Les tailles des archives Ă©taient : tar.gz â 214 Mo, RAR â 235 Mo, 7z â 135 Mo. Il est Ă noter qu'en termes de vitesse de dĂ©compression et d'accĂšs alĂ©atoire aux fichiers, Pack dĂ©passe Ă©galement les autres archiveurs, tout en consommant moins de mĂ©moire vive. ZIP : 253 Mo, 146 s 7z : 135 Mo, 54,2 s plus rapide que ZIP de 2,7 fois tar.gz : 214 Mo, 28,5 s x 5,1 RAR : 235 Mo, 27,5 s x 5,3 tar : 1345 Mo, 4,7 s x 31 Pack : 194 Mo, 1,3 s x 112
L'influence du cache de fichiers sur les rĂ©sultats du test n'est pas mentionnĂ©e. Il est probable que la faible vitesse de ZIP soit due Ă l'ordre d'exĂ©cution des tests sans tenir compte de la mise en cache des donnĂ©es en mĂ©moire â le test avec zip a Ă©tĂ© exĂ©cutĂ© avec un cache froid, tandis que les autres tests ont Ă©tĂ© rĂ©alisĂ©s avec un cache chaud. Dans des conditions normales, Zstandard prĂ©sente une vitesse de compression 3 Ă 5 fois plus Ă©levĂ©e que zlib et un dĂ©compression deux fois plus rapide, avec un niveau de compression supĂ©rieur de 10 Ă 15 %.
ComplĂ©ment : Une idĂ©e similaire de stockage de fichiers compressĂ©s sous forme de blobs dans une base de donnĂ©es SQLite a Ă©tĂ© mise en Ćuvre en 2014 dans l'archiveur sqlar, créé par les dĂ©veloppeurs de SQLite dans le cadre d'une expĂ©rience pour Ă©valuer l'efficacitĂ© du stockage de blobs dans SQLite. Dans sqlar, la compression utilise zlib et la taille des fichiers est environ 2 % plus grande que celle de l'utilitaire ZIP.
Source : opennet.ru
