# JMH 1.10.1 (released 15 days ago) # VM invoker: /home/hermes/jdk-vh/bin/java # VM options: -client # 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: 81.952 ns/op # Warmup Iteration 2: 48.264 ns/op # Warmup Iteration 3: 44.658 ns/op # Warmup Iteration 4: 44.713 ns/op # Warmup Iteration 5: 44.690 ns/op Iteration 1: 45.161 ns/op Iteration 2: 45.457 ns/op Iteration 3: 44.737 ns/op Iteration 4: 44.664 ns/op Iteration 5: 44.677 ns/op # Processing profiler results: LinuxPerfAsmProfiler Result "varHandle": 44.939 ±(99.9%) 1.365 ns/op [Average] (min, avg, max) = (44.664, 44.939, 45.457), stdev = 0.355 CI (99.9%): [43.574, 46.304] (assumes normal distribution) Secondary result "·asm": PrintAssembly processed: 50776 total address lines. Perf output processed (skipped 5.621 seconds): Column 1: cycles (15369 events) Column 2: instructions (15161 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. [0xb487c3d4:0xb487c4a0] in org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@7 (line 161) ; {runtime_call} 0xb487c3d4: mov 0x80(%esp),%esi 0xb487c3db: mov %eax,0x20(%esi) ; implicit exception: dispatches to 0xb487c54f 0xb487c3de: mov %edx,0x24(%esi) ;*putfield startTime ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@10 (line 161) 0xb487c3e1: mov $0x0,%edi 0xb487c3e6: mov $0x0,%ebx ╭ 0xb487c3eb: jmp 0xb487c460 ;*aload_3 │ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@13 (line 163) 0.77% 1.76% │ ↗ 0xb487c3f0: mov $0xa4fa4680,%ecx ; {oop(a 'java/lang/invoke/MemberName'[10] )} │ │ 0xb487c3f5: cmpl $0x0,0x8(%ecx) ; implicit exception: dispatches to 0xb487c554 3.08% 1.68% │ │ 0xb487c3fc: jbe 0xb487c55e 0.72% 1.64% │ │ 0xb487c402: mov 0xc(%ecx),%esi ;*aaload │ │ ; - java.lang.invoke.VarHandleGuards::guard_L_I@30 (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) │ │ 0xb487c405: cmp $0x0,%esi 0.72% 0.01% │ │ 0xb487c408: je 0xb487c4d9 ;*ifnonnull │ │ ; - java.lang.invoke.VarHandleGuards::checkMemberName@1 (line 16) │ │ ; - java.lang.invoke.VarHandleGuards::guard_L_I@31 (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) 0.89% 0.01% │ │ 0xb487c40e: mov 0x84(%esp),%edi 0.01% │ │ 0xb487c415: mov $0xa4f72fc8,%ebx ; {oop(a 'java/lang/invoke/VarHandleInts$FieldInstanceReadWrite')} 0.77% 0.01% │ │ 0xb487c41a: mov %ebx,%ecx 0.68% 0.80% │ │ 0xb487c41c: mov %edi,%edx 0.01% │ │ 0xb487c41e: mov %esi,(%esp) ;*invokestatic linkToStatic │ │ ; - 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) 0.72% 1.72% │ │ 0xb487c421: nop │ │ 0xb487c422: nop 0.68% 0.83% │ │ 0xb487c423: call 0xb47c4b50 ; ImmutableOopMap{[88]=Oop [128]=Oop [132]=Oop } │ │ ;*invokestatic linkToStatic │ │ ; - 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) │ │ ; {static_call} 0.80% 1.52% │ │ 0xb487c428: mov %eax,%edx 0.64% 0.01% │ │ 0xb487c42a: mov 0x84(%esp),%ecx ;*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) 0.01% 0.01% │ │ 0xb487c431: nop 0.77% 0.01% │ │ 0xb487c432: nop 0.01% │ │ 0xb487c433: call 0xb47c46d0 ; ImmutableOopMap{[88]=Oop [128]=Oop [132]=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.67% 0.88% │ │ 0xb487c438: mov 0x60(%esp),%edi 0.73% 1.77% │ │ 0xb487c43c: mov 0x64(%esp),%ebx 0.72% 1.60% │ │ 0xb487c440: add $0x1,%edi 0.01% │ │ 0xb487c443: adc $0x0,%ebx 1.57% 1.60% │ │ 0xb487c446: mov 0x58(%esp),%edx 0.01% │ │ 0xb487c44a: movsbl 0x90(%edx),%eax ; ImmutableOopMap{[128]=Oop [132]=Oop edx=Oop [88]=Oop } │ │ ;*ifeq │ │ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@27 (line 165) │ │ ; implicit exception: dispatches to 0xb487c56a 2.24% 2.35% │ │ 0xb487c451: test %eax,0xb772a000 ; {poll} 0.81% 0.01% │ │ 0xb487c457: cmp $0x0,%eax 0.01% 0.01% │╭│ 0xb487c45a: jne 0xb487c498 ;*ifeq │││ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@27 (line 165) 0.84% 0.01% ↘││ 0xb487c460: mov %edi,0x60(%esp) 0.01% ││ 0xb487c464: mov %ebx,0x64(%esp) 0.96% 0.02% ││ 0xb487c468: mov 0x84(%esp),%esi 0.61% 0.76% ││ 0xb487c46f: cmp (%esi),%eax ;*invokevirtual varHandle ││ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@14 (line 163) ││ ; implicit exception: dispatches to 0xb487c56f 2.24% 2.61% ││ 0xb487c471: mov $0xa4fa4c58,%ecx ; {oop(a 'java/lang/invoke/MethodType'[4] )} ││ 0xb487c476: cmpl $0x0,0x8(%ecx) ; implicit exception: dispatches to 0xb487c574 2.81% 3.47% ││ 0xb487c47d: jbe 0xb487c57e 0.72% 0.01% ││ 0xb487c483: mov 0xc(%ecx),%ecx ;*aaload ││ ; - java.lang.invoke.VarHandleGuards::guard_L_I@8 (line 48) ││ ; - org.openjdk.varhandles.get.acc.IntTest::varHandle@5 (line 57) ││ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@14 (line 163) 0.01% 0.01% ││ 0xb487c486: mov $0xa4f6bd50,%esi ; {oop(a 'java/lang/invoke/MethodType' = (Lorg/openjdk/varhandles/get/acc/IntTest;)I)} 0.77% 0.92% ││ 0xb487c48b: cmp %esi,%ecx 0.85% 1.54% │╰ 0xb487c48d: je 0xb487c3f0 │ 0xb487c493: jmp 0xb487c539 ;*if_acmpeq │ ; - java.lang.invoke.VarHandleGuards::checkExactType@2 (line 8) │ ; - java.lang.invoke.VarHandleGuards::guard_L_I@13 (line 48) │ ; - org.openjdk.varhandles.get.acc.IntTest::varHandle@5 (line 57) │ ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@14 (line 163) ↘ 0xb487c498: mov %edi,0x68(%esp) 0xb487c49c: mov %ebx,0x6c(%esp) 0xb487c4a0: call 0xb6e465c0 ;*invokestatic nanoTime ; - org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub@31 (line 166) ; {runtime_call} .................................................................................................... 27.85% 27.58% ....[Hottest Region 2].............................................................................. [0xb487a600:0xb487a630] in java.lang.invoke.VarHandleInts$FieldInstanceReadOnly::get ImmutableOopMap{ecx=Oop edx=Oop }pc offsets: 42 47 Decoding compiled method 0xb487a508: Code: [Entry Point] [Verified Entry Point] [Constants] # {method} {0xa3acc900} 'get' '(Ljava/lang/invoke/VarHandleInts$FieldInstanceReadOnly;Ljava/lang/Object;)I' in 'java/lang/invoke/VarHandleInts$FieldInstanceReadOnly' # parm0: ecx = 'java/lang/invoke/VarHandleInts$FieldInstanceReadOnly' # parm1: edx = 'java/lang/Object' # [sp+0x30] (sp of caller) 1.72% 3.06% 0xb487a600: mov %eax,-0x4000(%esp) 0.91% 1.86% 0xb487a607: push %ebp 0.92% 0.97% 0xb487a608: sub $0x28,%esp ;*aload_1 ; - java.lang.invoke.VarHandleInts$FieldInstanceReadOnly::get@0 (line 49) 0.92% 1.93% ╭ 0xb487a60b: mov 0x4(%edx),%eax ; implicit exception: dispatches to 0xb487a625 0.01% │ 0xb487a60e: mov 0x38(%eax),%eax ;*invokevirtual getClass │ ; - java.lang.invoke.VarHandleInts$FieldInstanceReadOnly::get@1 (line 49) 2.63% 4.06% │╭ 0xb487a611: mov 0x10(%ecx),%esi ; implicit exception: dispatches to 0xb487a62a 0.90% 0.99% ││ 0xb487a614: mov 0x14(%ecx),%eax ;*getfield fieldOffset ││ ; - java.lang.invoke.VarHandleInts$FieldInstanceReadOnly::get@10 (line 50) 0.93% 0.03% ││ 0xb487a617: mov (%edx,%esi,1),%eax 1.78% 2.04% ││ 0xb487a61a: add $0x28,%esp 0.01% ││ 0xb487a61d: pop %ebp 3.32% 2.83% ││ 0xb487a61e: test %eax,0xb772a000 ; {poll_return} 0.91% 0.90% ││ 0xb487a624: ret ↘│ 0xb487a625: call 0xb4829ad0 ; ImmutableOopMap{ecx=Oop edx=Oop } │ ;*invokevirtual getClass │ ; - java.lang.invoke.VarHandleInts$FieldInstanceReadOnly::get@1 (line 49) │ ; {runtime_call throw_null_pointer_exception Runtime1 stub} ↘ 0xb487a62a: call 0xb4829ad0 ; ImmutableOopMap{ecx=Oop edx=Oop } ;*getfield fieldOffset ; - java.lang.invoke.VarHandleInts$FieldInstanceReadOnly::get@10 (line 50) ; {runtime_call throw_null_pointer_exception Runtime1 stub} 0xb487a62f: nop 0xb487a630: nop .................................................................................................... 14.97% 18.67% ....[Hottest Regions]............................................................................... 27.85% 27.58% [0xb487c3d4:0xb487c4a0] in org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub 14.97% 18.67% [0xb487a600:0xb487a630] in java.lang.invoke.VarHandleInts$FieldInstanceReadOnly::get 8.74% 7.30% [0xb487a840:0xb487a88e] in org.openjdk.varhandles.get.acc.IntTest::sink 5.11% 5.26% [0xb487aafd:0xb487abf3] in org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub 5.10% 4.00% [0xb4860160:0xb4860177] in java.lang.invoke.MethodHandle::linkToStatic 1.27% 0.43% [0xc165ef4b:0xc165eff5] in [unknown] ([kernel.kallsyms]) 0.68% 0.81% [0xb6a37c0b:0xb6a37c0e] in __x86.get_pc_thunk.bx (libjvm.so) 0.53% 0.34% [0xc1192590:0xc11925f3] in [unknown] ([kernel.kallsyms]) 0.52% 0.69% [0xc1179300:0xc1179440] in [unknown] ([kernel.kallsyms]) 0.49% 1.00% [0xb6e57090:0xb6e57125] in fileStream::write(char const*, unsigned int) (libjvm.so) 0.49% 0.11% [0xb772d414:0xb772d426] in [unknown] ([vdso]) 0.39% 0.45% [0xb75a2660:0xb75a2722] in _IO_fwrite (libc-2.19.so) 0.39% 0.36% [0xc12a6e70:0xc12a6eed] in [unknown] ([kernel.kallsyms]) 0.38% 0.27% [0xb6e5ae80:0xb6e5aee0] in defaultStream::write(char const*, unsigned int) (libjvm.so) 0.38% 0.24% [0xc10ab720:0xc10ab785] in [unknown] ([kernel.kallsyms]) 0.36% 0.36% [0xc1178ec0:0xc1178f33] in [unknown] ([kernel.kallsyms]) 0.35% 0.27% [0xc12fc4d0:0xc12fc51d] in [unknown] ([kernel.kallsyms]) 0.34% 0.19% [0xb75ba970:0xb75ba991] in [unknown] (libc-2.19.so) 0.34% 0.26% [0xb75a4950:0xb75a49b2] in [unknown] (libc-2.19.so) 0.33% 0.28% [0xb4792b02:0xb4792bd4] in 30.98% 31.12% <...other 2084 warm regions...> .................................................................................................... 99.99% 100.00% ....[Hottest Methods (after inlining)].............................................................. 32.96% 32.84% org.openjdk.varhandles.get.acc.generated.IntTest_varHandle::varHandle_avgt_jmhStub 14.97% 18.67% java.lang.invoke.VarHandleInts$FieldInstanceReadOnly::get 14.52% 14.05% [unknown] ([kernel.kallsyms]) 8.74% 7.30% org.openjdk.varhandles.get.acc.IntTest::sink 5.10% 4.00% java.lang.invoke.MethodHandle::linkToStatic 2.57% 2.38% [unknown] (libc-2.19.so) 1.12% 0.98% vfprintf (libc-2.19.so) 0.81% 0.59% 0.68% 0.81% __x86.get_pc_thunk.bx (libjvm.so) 0.62% 0.40% defaultStream::write(char const*, unsigned int) (libjvm.so) 0.51% 0.67% _IO_fwrite (libc-2.19.so) 0.49% 1.00% fileStream::write(char const*, unsigned int) (libjvm.so) 0.49% 0.11% [unknown] ([vdso]) 0.42% 0.30% print_insn (libhsdis-i386.so) 0.41% 0.63% xmlStream::write_text(char const*, unsigned int) (libjvm.so) 0.38% 0.31% jio_print (libjvm.so) 0.36% 0.75% outputStream::update_position(char const*, unsigned int) (libjvm.so) 0.36% 0.46% 0.34% 0.28% 0.32% 0.35% defaultStream::hold(int) (libjvm.so) 13.83% 11.25% <...other 688 warm methods...> .................................................................................................... 99.99% 98.13% ....[Distribution by Area].......................................................................... 66.04% 66.85% 14.52% 14.05% 11.17% 11.83% 5.69% 5.55% 1.16% 0.80% 0.58% 0.34% 0.49% 0.11% 0.13% 0.27% 0.07% 0.01% 0.05% 0.09% 0.04% 0.03% 0.03% 0.07% 0.01% 0.01% 0.01% 0.01% .................................................................................................... 99.99% 100.00% # Run complete. Total time: 00:00:25 Benchmark Mode Cnt Score Error Units IntTest.varHandle avgt 5 44.939 ± 1.365 ns/op IntTest.varHandle:·asm avgt NaN ---