Java · Avançado · Português · Técnico
JMH
Java Microbenchmark Harness, ferramenta do OpenJDK para microbenchmarks confiáveis. Cuida de aquecimento, forks e eliminação de código morto pelo JIT.
Onde usar
Aparece em discussões de 'qual é mais rápido?': medir com laços ingênuos engana. Em review: 'cadê o benchmark com JMH?'.
Em código
@State(Scope.Thread)
@BenchmarkMode(Mode.AverageTime)
public class Bench {
int x = 42;
@Benchmark
public int dobro() { return x * 2; }
}Exemplos
Mede isso com JMH, não com nanoTime num laço.
O benchmark estava medindo nada, o JIT eliminou o código.
Cuidado
Sem usar Blackhole ou retornar o resultado, o JIT pode eliminar o código medido, e o benchmark mede o vazio.
Sinônimos
Microbenchmark Harness