ExpertiDict

Java · Avançado · Português · Técnico

JMH

/ˈʒɔtɐ ˈẽmi ˈaɡa/substantivo

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

Veja também

Todos os termos de Java