Ajout de benchmarks JMH

Ajout de benchmarks JMH

Rendre LogoRRR plus rapide qu'avant.

La version 24.3.0 ajoute des outils de benchmarking JMH à la base de code de LogoRRR.

JMH — le Java Microbenchmark Harness — est l’outil standard pour la mesure des performances sur la JVM. LogoRRR traite les fichiers volumineux en analysant des millions de lignes de journal par exécution, ce qui rend certaines de ses boucles internes véritablement sensibles aux performances. JMH fournit des mesures reproductibles et fiables pour exactement ce type de chemins critiques.

Configuration

LogoRRR est écrit en Scala mais utilise Maven comme outil de build — ce qui est assez inhabituel, mais fonctionne très bien ici. La mise en place de JMH via l’archétype Maven standard s’est faite sans difficulté. Les benchmarks eux-mêmes sont écrits en Java, mais la base de code Scala expose des points d’entrée propres que les benchmarks peuvent appeler directement.

Résultats

L’hypothèse de départ était qu’une fonction appelée très fréquemment lors du chargement de chaque fichier était déjà raisonnablement rapide. JMH a prouvé que cette hypothèse était erronée. Après mesure et itérations, le débit de cette fonction a plus que doublé. C’est exactement à cela que servent les benchmarks : ils remplacent les suppositions par des données.

LogoRRR était déjà capable de gérer de grands fichiers journaux avant ce travail. Grâce à ces améliorations, il les traite plus rapidement — et l’infrastructure de benchmarking est désormais en place pour détecter les régressions dans les futures versions.

Des outils comme JMH vous montrent ce qui fonctionne réellement et fournissent des résultats reproductibles.

Photo d’en-tête par Nathan Salt sur Pexels.