JMH-Benchmarks hinzufügen

JMH-Benchmarks hinzufügen

LogoRRR wieder schnell machen.

Release 24.3.0 fügt JMH-Benchmarking-Unterstützung zur Codebasis von LogoRRR hinzu.

JMH — der Java Microbenchmark Harness — ist das Standardwerkzeug zur Leistungsmessung auf der JVM. LogoRRR verarbeitet große Dateien, indem es einzelne Log-Zeilen millionenfach pro Lauf durchläuft, was einige seiner inneren Schleifen tatsächlich leistungskritisch macht. JMH liefert reproduzierbare, verlässliche Messwerte für genau diese Art von häufig ausgeführten Codepfaden.

Einrichtung

LogoRRR ist in Scala geschrieben, verwendet aber Maven als Build-Werkzeug — was etwas ungewöhnlich ist, hier aber gut funktioniert. Das Einrichten von JMH über das Standard-Maven-Archetype war unkompliziert. Die Benchmarks selbst sind in Java geschrieben, aber die Scala-Codebasis bietet saubere Einstiegspunkte, die die Benchmarks direkt aufrufen können.

Ergebnisse

Die Ausgangshypothese war, dass eine bestimmte, bei jedem Dateiladen sehr häufig aufgerufene Funktion bereits hinreichend schnell sei. JMH widerlegte diese Annahme. Nach Messungen und Optimierungsiterationen wurde der Durchsatz dieser Funktion mehr als verdoppelt. Genau dafür sind Benchmarks da: Sie ersetzen Rätselraten durch Daten.

LogoRRR konnte schon vor dieser Arbeit große Log-Dateien verarbeiten. Mit diesen Verbesserungen geht das nun schneller — und die Benchmarking-Infrastruktur ist vorhanden, um Regressionen in zukünftigen Releases zu erkennen.

Werkzeuge wie JMH zeigen, was wirklich funktioniert, und liefern reproduzierbare Ergebnisse.

Foto von Nathan Salt on Pexels.