package org.openjdk; import org.openjdk.jmh.annotations.*; import java.util.concurrent.TimeUnit; @Warmup(iterations = 20, time = 1, timeUnit = TimeUnit.SECONDS) @Measurement(iterations = 5, time = 1, timeUnit = TimeUnit.SECONDS) @Fork(3) @State(Scope.Thread) @BenchmarkMode(Mode.AverageTime) @OutputTimeUnit(TimeUnit.NANOSECONDS) public class ObjectInit { @Benchmark @Fork(jvmArgsAppend = {"-XX:-Inline", "-XX:+TieredCompilation"}) public Object tiered() { return new Object(); } @Benchmark @Fork(jvmArgsAppend = {"-XX:-Inline", "-XX:-TieredCompilation"}) public Object nonTiered() { return new Object(); } /* With MDO checks: java.lang.Object.()V is accepted by code size = 1 Benchmark Mode Cnt Score Error Units ObjectInit.nonTiered avgt 15 5.431 ± 0.129 ns/op ObjectInit.tiered avgt 15 5.979 ± 0.088 ns/op <--- OOPS Without MDO checks: Benchmark Mode Cnt Score Error Units ObjectInit.nonTiered avgt 15 5.440 ± 0.152 ns/op ObjectInit.tiered avgt 15 5.492 ± 0.158 ns/op */ }