i7 4790K, 4.0 GHz, Linux x86_64, jdk9-dev: Benchmark Mode Cnt Score Error Units # Baseline Unsafe AFUBench.int_unsafe avgt 25 3.155 ± 0.035 ns/op AFUBench.long_unsafe avgt 25 3.129 ± 0.006 ns/op AFUBench.ref_unsafe avgt 25 3.213 ± 0.010 ns/op # Baseline Updaters AFUBench.int_updater avgt 25 4.035 ± 0.010 ns/op AFUBench.long_updater avgt 25 4.074 ± 0.006 ns/op AFUBench.ref_updater avgt 25 4.562 ± 0.176 ns/op # Trusted Updaters AFUBench.int_updater avgt 25 3.280 ± 0.081 ns/op AFUBench.long_updater avgt 25 3.280 ± 0.174 ns/op AFUBench.ref_updater avgt 25 3.347 ± 0.015 ns/op --------------------------------------------------------------------- Baseline int_updater: [Verified Entry Point] 0.91% 0.84% 0x00007fbb60acfe20: mov %eax,-0x14000(%rsp) 4.78% 4.93% 0x00007fbb60acfe27: push %rbp 0.25% 0.45% 0x00007fbb60acfe28: sub $0x30,%rsp ;*synchronization entry ; - org.openjdk.AFUBench::int_updater@-1 (line 55) 1.25% 2.52% 0x00007fbb60acfe2c: mov %rsi,%r10 3.83% 2.89% 0x00007fbb60acfe2f: mov 0x8(%rsi),%ecx 0.38% 0.26% 0x00007fbb60acfe32: movabs $0x0,%r11 0.56% 0.40% 0x00007fbb60acfe3c: lea (%r11,%rcx,8),%r11 1.11% 0.54% 0x00007fbb60acfe40: mov 0x68(%r11),%r8 ;*invokevirtual getClass {reexecute=0 rethrow=0 return_oop=0} ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::get@5 (line 459) ; - org.openjdk.AFUBench::int_updater@4 (line 55) 4.15% 3.42% 0x00007fbb60acfe44: movabs $0x5e8e9a010,%rbx ; {oop(a 'java/util/concurrent/atomic/AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl')} 0.38% 0.18% 0x00007fbb60acfe4e: mov 0xc(%rbx),%r11d ;*getfield tclass {reexecute=0 rethrow=0 return_oop=0} ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::get@9 (line 459) ; - org.openjdk.AFUBench::int_updater@4 (line 55) 0.50% 0.32% 0x00007fbb60acfe52: mov %r11,%r9 0.95% 1.07% 0x00007fbb60acfe55: shl $0x3,%r9 3.73% 3.61% 0x00007fbb60acfe59: cmp %r9,%r8 0x00007fbb60acfe5c: je 0x00007fbb60acfeed ;*if_acmpne {reexecute=0 rethrow=0 return_oop=0} ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::get@12 (line 459) ; - org.openjdk.AFUBench::int_updater@4 (line 55) 0.29% 0.28% 0x00007fbb60acfe62: mov 0x48(%r12,%r11,8),%rax ; implicit exception: dispatches to 0x00007fbb60acff41 0.62% 0.68% 0x00007fbb60acfe67: mov 0xc(%rax),%r9d ; implicit exception: dispatches to 0x00007fbb60acff55 1.21% 1.09% 0x00007fbb60acfe6b: cmp $0xf8019018,%ecx ; {metadata('org/openjdk/generated/AFUBench_jmhType')} 0x00007fbb60acfe71: jne 0x00007fbb60acff21 3.60% 3.00% 0x00007fbb60acfe77: mov %rsi,%r8 0.32% 0.40% 0x00007fbb60acfe7a: movslq %r9d,%r11 0.50% 0.50% 0x00007fbb60acfe7d: movabs $0x7c00c80c0,%rsi ; {metadata('org/openjdk/generated/AFUBench_jmhType')} 1.16% 1.34% 0x00007fbb60acfe87: mov (%rsi,%r11,1),%r11 9.05% 9.02% 0x00007fbb60acfe8b: cmp %r11,%rax ╭ 0x00007fbb60acfe8e: jne 0x00007fbb60acfeab ;*invokevirtual isInstance {reexecute=0 rethrow=0 return_oop=0} │ ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::fullCheck@5 (line 432) │ ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::get@24 (line 459) │ ; - org.openjdk.AFUBench::int_updater@4 (line 55) 6.23% 6.02% │↗ 0x00007fbb60acfe90: mov 0x18(%rbx),%ebp ;*getfield cclass {reexecute=0 rethrow=0 return_oop=0} ││ ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::fullCheck@20 (line 434) ││ ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::get@24 (line 459) ││ ; - org.openjdk.AFUBench::int_updater@4 (line 55) 0.32% 0.29% ││ 0x00007fbb60acfe93: test %ebp,%ebp ││ 0x00007fbb60acfe95: jne 0x00007fbb60acff09 0.39% 0.67% ││ 0x00007fbb60acfe97: mov 0x10(%rbx),%r10 1.11% 0.59% ││ 0x00007fbb60acfe9b: mov (%r8,%r10,1),%eax ;*invokevirtual getIntVolatile {reexecute=0 rethrow=0 return_oop=0} ││ ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::get@35 (line 460) ││ ; - org.openjdk.AFUBench::int_updater@4 (line 55) 3.51% 3.15% ││ 0x00007fbb60acfe9f: add $0x30,%rsp 0.24% 0.26% ││ 0x00007fbb60acfea3: pop %rbp 0.50% 0.75% ││ 0x00007fbb60acfea4: test %eax,0x11f02156(%rip) # 0x00007fbb729d2000 ││ ; {poll_return} 1.04% 0.03% ││ 0x00007fbb60acfeaa: retq Trusted int_updater: 1.49% 1.59% 0x00007fcb85541700: mov %eax,-0x14000(%rsp) 5.86% 4.71% 0x00007fcb85541707: push %rbp 0.01% 0x00007fcb85541708: sub $0x20,%rsp ;*synchronization entry ; - org.openjdk.AFUBench::int_updater@-1 (line 55) 1.65% 1.42% 0x00007fcb8554170c: mov 0x8(%rsi),%r10d ;*invokevirtual getClass {reexecute=0 rethrow=0 return_oop=0} ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::get@5 (line 459) ; - org.openjdk.AFUBench::int_updater@4 (line 55) 5.75% 4.25% 0x00007fcb85541710: cmp $0xf80190bf,%r10d ; {metadata('org/openjdk/AFUBench')} ╭ 0x00007fcb85541717: je 0x00007fcb85541728 0.04% │ 0x00007fcb85541719: mov 0xc(%rsi),%eax ;*invokevirtual getIntVolatile {reexecute=0 rethrow=0 return_oop=0} │ ; - java.util.concurrent.atomic.AtomicIntegerFieldUpdater$AtomicIntegerFieldUpdaterImpl::get@35 (line 460) │ ; - org.openjdk.AFUBench::int_updater@4 (line 55) 1.63% 1.12% │ 0x00007fcb8554171c: add $0x20,%rsp 0.06% │ 0x00007fcb85541720: pop %rbp 5.72% 6.19% │ 0x00007fcb85541721: test %eax,0x120788d9(%rip) # 0x00007fcb975ba000 │ ; {poll_return} 0.17% 0.18% │ 0x00007fcb85541727: retq