La versione 24.3.0 aggiunge le funzionalità di benchmarking JMH alla base di codice di LogoRRR.
JMH — Java Microbenchmark Harness — è lo strumento standard per la misurazione delle prestazioni JVM. LogoRRR gestisce file di grandi dimensioni elaborando singole righe di log milioni di volte per esecuzione, il che rende alcuni dei suoi cicli interni realmente sensibili alle prestazioni. JMH fornisce numeri riproducibili e affidabili esattamente per questo tipo di percorsi critici.
Configurazione
LogoRRR è scritto in Scala ma utilizza Maven come strumento di compilazione — il che è un po’ insolito, ma qui funziona bene. Il bootstrap di JMH tramite l’archetipo Maven standard è stato semplice. I benchmark stessi sono scritti in Java, ma la base di codice Scala espone punti di ingresso puliti che i benchmark possono chiamare direttamente.
Risultati
L’ipotesi di partenza era che una particolare funzione, chiamata molto frequentemente per ogni caricamento di file, fosse già ragionevolmente veloce. JMH ha dimostrato che tale ipotesi era errata. Dopo misurazioni e iterazioni, il throughput è più che raddoppiato per quella funzione. Questo tipo di risultato è esattamente lo scopo dei benchmark: sostituiscono le congetture con i dati.
LogoRRR era già in grado di gestire file di log di grandi dimensioni prima di questo lavoro. Con questi miglioramenti, li gestisce più velocemente — e l’infrastruttura di benchmarking è ora pronta per rilevare regressioni nelle versioni future.
Strumenti come JMH ti mostreranno cosa funziona davvero e forniranno risultati riproducibili.
Foto della testata di Nathan Salt su Pexels.
