Adicionando Benchmarks JMH

Adicionando Benchmarks JMH

Deixando o LogoRRR rápido novamente.

A versão 24.3.0 adiciona recursos de benchmarking JMH à base de código do LogoRRR.

O JMH — o Java Microbenchmark Harness — é a ferramenta padrão para medição de desempenho na JVM. O LogoRRR lida com arquivos grandes processando linhas de log individuais milhões de vezes por execução, o que torna alguns de seus laços internos genuinamente sensíveis ao desempenho. O JMH fornece números reproduzíveis e confiáveis exatamente para esse tipo de caminho quente.

Configuração

O LogoRRR é escrito em Scala, mas usa Maven como ferramenta de build — algo incomum, mas que funciona bem aqui. Inicializar o JMH via o archetype Maven padrão foi simples. Os próprios benchmarks são escritos em Java, mas a base de código Scala expõe pontos de entrada limpos que os benchmarks podem chamar diretamente.

Resultados

A hipótese inicial era que uma função específica, chamada com muita frequência durante o carregamento de arquivos, já era razoavelmente rápida. O JMH provou que essa hipótese estava errada. Após medir e iterar, a taxa de transferência dessa função mais que dobrou. Esse tipo de resultado é exatamente para o que servem os benchmarks: eles substituem suposições por dados.

O LogoRRR já era capaz de lidar com arquivos de log grandes antes desse trabalho. Com essas melhorias, ele os processa mais rapidamente — e a infraestrutura de benchmarking agora está disponível para detectar regressões em versões futuras.

Ferramentas como o JMH mostrarão o que realmente funciona e fornecerão resultados reproduzíveis.

Foto do cabeçalho por Nathan Salt no Pexels.