# JMH 1.10.1 (released 15 days ago) # VM invoker: /home/hermes/jdk-vh/bin/java # VM options: -server # Warmup: 5 iterations, 1 s each # Measurement: 5 iterations, 1 s each # Timeout: 10 min per iteration # Threads: 1 thread, will synchronize iterations # Benchmark mode: Average time, time/op # Benchmark: org.openjdk.varhandles.get.acc.IntTest.varHandle # Run progress: 0.00% complete, ETA 00:00:10 # Fork: 1 of 1 # Preparing profilers: LinuxPerfAsmProfiler # Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console # Warmup Iteration 1: 57.248 ns/op # Warmup Iteration 2: 26.892 ns/op # Warmup Iteration 3: 48.999 ns/op # Warmup Iteration 4: 18.135 ns/op # Warmup Iteration 5: 17.750 ns/op Iteration 1: 17.348 ns/op Iteration 2: 22.038 ns/op Iteration 3: 17.264 ns/op Iteration 4: 17.684 ns/op Iteration 5: 18.116 ns/op # Processing profiler results: LinuxPerfAsmProfiler Result "varHandle": 18.490 ±(99.9%) 7.746 ns/op [Average] (min, avg, max) = (17.264, 18.490, 22.038), stdev = 2.012 CI (99.9%): [10.744, 26.236] (assumes normal distribution) Secondary result "·asm": PrintAssembly processed: 131324 total address lines. Perf output processed (skipped 6.980 seconds): Column 1: cycles (32487 events) Column 2: instructions (31727 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. [0xaedac080:0xaedac0ec] in org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub 0xaedac080: xor %edi,%edi 0xaedac082: test %ebx,%ebx ╭ 0xaedac084: jne 0xaedac0da ;*ifeq │ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@27 (line 165) │ 0xaedac086: mov $0x1,%ecx │ 0xaedac08b: xor %ebx,%ebx │ 0xaedac08d: mov %ecx,(%esp) │ 0xaedac090: mov %ebx,0x4(%esp) │╭ 0xaedac094: jmp 0xaedac0a7 ││ 0xaedac096: nopw 0x0(%eax,%eax,1) 0.74% 0.03% ││↗ 0xaedac0a0: mov %ebp,(%esp) 0.04% 0.04% │││ 0xaedac0a3: mov %edi,0x4(%esp) ;*aload_3 │││ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@13 (line 163) 0.81% 0.93% │↘│ 0xaedac0a7: mov 0x24(%esp),%ebx 0.72% 0.86% │ │ 0xaedac0ab: mov 0x8(%ebx),%edx ;*invokevirtual getInt │ │ ; - java.lang.invoke.VarHandleInts$FieldInstanceReadOnly::get@13 (line 50) │ │ ; - java.lang.invoke.VarHandleGuards::guard_L_I@34 (line 49) │ │ ; - org.openjdk.varhandles.get.acc.IntTest::varHandle@5 (line 57) │ │ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@14 (line 163) 2.44% 2.02% │ │ 0xaedac0ae: mov 0x24(%esp),%ecx 0.68% 0.07% │ │ 0xaedac0b2: nop 0.04% 0.03% │ │ 0xaedac0b3: call 0xa731f9e0 ; ImmutableOopMap{[32]=Oop [36]=Oop [40]=Oop } │ │ ;*invokespecial sink │ │ ; - org.openjdk.varhandles.get.acc.IntTest::varHandle@8 (line 57) │ │ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@14 (line 163) │ │ ; {optimized virtual_call} 0.80% 0.05% │ │ 0xaedac0b8: mov 0x28(%esp),%ecx 0.76% 0.97% │ │ 0xaedac0bc: movzbl 0x90(%ecx),%ebx ;*getfield isDone │ │ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@24 (line 165) 2.39% 3.79% │ │ 0xaedac0c3: mov (%esp),%ebp 0.76% 0.96% │ │ 0xaedac0c6: mov 0x4(%esp),%edi 0.77% 0.87% │ │ 0xaedac0ca: add $0x1,%ebp 0.01% 0.01% │ │ 0xaedac0cd: adc $0x0,%edi ; ImmutableOopMap{ecx=Oop [32]=Oop [36]=Oop [40]=Oop } │ │ ;*ifeq │ │ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@27 (line 165) 1.46% 0.84% │ │ 0xaedac0d0: test %edi,0xb7746000 ; {poll} 0.79% 0.03% │ │ 0xaedac0d6: test %ebx,%ebx 0.02% 0.01% │ ╰ 0xaedac0d8: je 0xaedac0a0 ;*aload_2 │ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@30 (line 166) ↘ 0xaedac0da: call 0xb6cd54d0 ;*invokestatic nanoTime ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@31 (line 166) ; {runtime_call} 0xaedac0df: mov 0x20(%esp),%ebx 0xaedac0e3: mov %ebp,0x10(%ebx) 0xaedac0e6: mov %edi,0x14(%ebx) ;*putfield measuredOps ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@46 (line 168) 0xaedac0e9: mov %eax,0x28(%ebx) 0xaedac0ec: mov %edx,0x2c(%ebx) ;*putfield stopTime .................................................................................................... 13.23% 11.53% ....[Hottest Regions]............................................................................... 13.23% 11.53% [0xaedac080:0xaedac0ec] in org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub 9.67% 12.28% [0xaeda8310:0xaeda835e] in org.openjdk.varhandles.get.acc.IntTest::sink 2.51% 1.01% [0xc165ef4b:0xc165eff5] in [unknown] ([kernel.kallsyms]) 1.30% 1.29% [0xaeda957b:0xaeda95df] in org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub 1.30% 1.95% [0xb6ce5fa0:0xb6ce6037] in fileStream::write(char const*, unsigned int) (libjvm.so) 1.13% 0.78% [0xb75be660:0xb75be722] in _IO_fwrite (libc-2.19.so) 1.12% 1.59% [0xc1179300:0xc117946c] in [unknown] ([kernel.kallsyms]) 1.07% 1.38% [0xb6625e2b:0xb6625e2e] in __x86.get_pc_thunk.bx (libjvm.so) 0.97% 0.30% [0xb7749414:0xb7749427] in [unknown] ([vdso]) 0.89% 0.54% [0xb6ce9d70:0xb6ce9df9] in defaultStream::write(char const*, unsigned int); defaultStream::hold(int) (libjvm.so) 0.89% 0.69% [0xc1192590:0xc11925f4] in [unknown] ([kernel.kallsyms]) 0.84% 0.78% [0xc1178ec0:0xc1178f33] in [unknown] ([kernel.kallsyms]) 0.81% 0.72% [0xc12a6e70:0xc12a6eed] in [unknown] ([kernel.kallsyms]) 0.77% 0.51% [0xc12fc4d0:0xc12fc527] in [unknown] ([kernel.kallsyms]) 0.77% 0.85% [0xa78e1042:0xa78e12d2] in org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub 0.76% 1.11% [0xb768094b:0xb768094e] in [unknown] (libc-2.19.so) 0.72% 0.39% [0xb75d6970:0xb75d6991] in [unknown] (libc-2.19.so) 0.69% 0.77% [0xc11799f0:0xc1179a70] in [unknown] ([kernel.kallsyms]) 0.68% 0.67% [0xc10ab720:0xc10ab785] in [unknown] ([kernel.kallsyms]) 0.67% 0.76% [0xb75c0950:0xb75c09b2] in [unknown] (libc-2.19.so) 59.20% 60.09% <...other 3964 warm regions...> .................................................................................................... 100.00% 100.00% ....[Hottest Methods (after inlining)].............................................................. 30.14% 29.60% [unknown] ([kernel.kallsyms]) 16.93% 15.31% org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub 9.67% 12.28% org.openjdk.varhandles.get.acc.IntTest::sink 5.86% 6.09% [unknown] (libc-2.19.so) 3.08% 2.19% 2.79% 3.11% vfprintf (libc-2.19.so) 1.39% 1.22% _IO_fwrite (libc-2.19.so) 1.30% 1.95% fileStream::write(char const*, unsigned int) (libjvm.so) 1.07% 1.38% __x86.get_pc_thunk.bx (libjvm.so) 0.97% 0.30% [unknown] ([vdso]) 0.91% 1.40% xmlStream::write_text(char const*, unsigned int) (libjvm.so) 0.91% 0.48% jio_print (libjvm.so) 0.89% 0.54% defaultStream::write(char const*, unsigned int); defaultStream::hold(int) (libjvm.so) 0.89% 0.55% defaultStream::hold(int) (libjvm.so) 0.64% 2.11% RelocIterator::set_limits(unsigned char*, unsigned char*) (libjvm.so) 0.62% 0.50% xmlStream::text(char const*, ...); xmlTextStream::write(char const*, unsigned int); xmlStream::write_text(char const*, unsigned int) (libjvm.so) 0.62% 1.67% outputStream::update_position(char const*, unsigned int) (libjvm.so) 0.58% 1.06% _IO_default_xsputn (libc-2.19.so) 0.55% 0.63% _IO_file_xsputn (libc-2.19.so) 0.48% 0.33% defaultStream::write(char const*, unsigned int) (libjvm.so) 19.71% 15.75% <...other 1290 warm methods...> .................................................................................................... 100.00% 98.43% ....[Distribution by Area].......................................................................... 33.49% 33.32% 30.14% 29.60% 20.40% 21.52% 13.42% 14.26% 1.33% 0.66% 0.97% 0.30% 0.10% 0.07% 0.06% 0.18% 0.05% 0.03% 0.03% 0.04% 0.01% 0.03% .................................................................................................... 100.00% 100.00% # Run complete. Total time: 00:00:46 Benchmark Mode Cnt Score Error Units IntTest.varHandle avgt 5 18.490 ± 7.746 ns/op IntTest.varHandle:·asm avgt NaN ---