❌

Vue lecture

Compression lz4 1.11 : nous avons testé les performances de cette version « majeure »

Plus on est de threads, plus on rit
Compression lz4 1.11 : nous avons testé les performances de cette version « majeure »

lz4 1.11 permet de paralléliser le traitement des données pour augmenter les performances. La 1.10 le permettait déjà, dans certains cas. Quels gains ? Quelles différences entre les deux versions ? Next vous explique tout, tests et chiffres à l’appui.

Le dépôt GitHub officiel de cet algorithme de compression présente cette mise à jour 1.11 comme « majeure » avec l’intégration de plus de 850 commits. « Sa fonctionnalité principale est la compression multithread, désormais directement intégrée à la bibliothèque. Cette version est également nettement plus rapide sur les petites données, notamment avec des dictionnaires, et inclut un grand nombre de corrections pour certains scénarios ».

lz4 vs liblz4 : les différences, les changements dans la 1.11

Si vous avez un peu suivi lz4, vous avez certainement déjà remarqué que la version 1.10, disponible depuis juillet 2024, prenait déjà en charge les multicœurs pour optimiser les performances. Quoi de neuf alors dans la 1.11 mise en ligne plus de deux ans après la précédente mouture ?

Les développeurs en charge du projet rappellent que, en effet, « la version 1.10.0 a introduit la compression multithread dans la ligne de commande lz4, mais les applications utilisant liblz4 n’en bénéficiaient pas ». Désormais, l’API lz4frame de liblz4 peut aussi profiter du multithreading (via le paramètre LZ4F_preferences_t.nbWorkers), bien qu’en mode expérimental pour le moment. Cette API est notamment utilisée pour des intégrations de lz4 dans des applications.

Des gains réels avec la version 1.11

Afin de voir les différences, de comprendre le fonctionnement et de tester plus largement les optimisations de lz4 1.11, nous avons relancé une série de tests sur notre protocole maison. Il comporte pour rappel 11 catégories de données, allant des images aux fichiers CSV en passant par des MP3, des PDF, du « vrac », etc. Les fichiers sont compressés individuellement avec un traitement depuis un disque virtuel créé en mémoire vive pour ne pas dépendre des performances du stockage.

Avant d’entrer dans les détails, voici les grandes lignes de la conclusion de nos tests. lz4 en version 1.11 avec sa commande de base permet de gagner jusqu’à 15 % de vitesse. Mais c’est évidemment l’API lz4frame (via liblz4) qui profite pleinement de la version 1.11 avec des performances multipliées jusqu’à x9 grâce au multithreading.


Il reste 67% de l'article à découvrir.
Vous devez être abonné•e pour lire la suite de cet article.
Déjà abonné•e ? Générez une clé RSS dans votre profil.

  •  
❌