Přidání benchmarků JMH

Přidání benchmarků JMH

LogoRRR je zase rychlejší.

Vydání 24.3.0 přidává do kódu LogoRRR benchmarky postavené na JMH.

JMH — Java Microbenchmark Harness — je standardní nástroj pro měření výkonu na JVM. LogoRRR pracuje s velkými soubory tak, že při jednom načtení projde jednotlivé řádky logu milionkrát, takže některé vnitřní smyčky jsou na výkon opravdu citlivé. JMH pro taková horká místa poskytuje reprodukovatelná a důvěryhodná čísla.

Nastavení

LogoRRR je napsané ve Scale, ale jako buildovací nástroj používá Maven. Není to úplně běžná kombinace, tady ale funguje dobře. Zavést JMH přes standardní mavenovský archetyp bylo přímočaré. Samotné benchmarky jsou napsané v Javě, ale scala kód nabízí čisté vstupní body, které z nich lze volat přímo.

Výsledky

Před měřením jsem předpokládal, že jedna často volaná funkce při načítání souboru už je dostatečně rychlá. JMH ukázalo opak. Po změření a několika iteracích se propustnost dané funkce více než zdvojnásobila. Přesně k tomu benchmarky jsou: nahrazují odhady daty.

LogoRRR umělo velké logy zpracovávat už před touto prací. Teď je zvládá rychleji — a infrastruktura benchmarků zůstává v projektu, aby v budoucích vydáních pomohla zachytit regresi výkonu.

Nástroje jako JMH ukážou, co opravdu funguje, a dají vám reprodukovatelné výsledky.

Úvodní fotografie: Nathan Salt na Pexels.