# JMH 1.11.2 (released 49 days ago) # VM version: JDK 1.9.0-ea, VM 1.9.0-ea-b93 # VM invoker: /home/shade/Install/jdk9b93/bin/java # VM options: -XX:+UseG1GC # 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.G1UselessBranch.test # 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: 6.078 ns/op # Warmup Iteration 2: 5.249 ns/op # Warmup Iteration 3: 5.607 ns/op # Warmup Iteration 4: 5.157 ns/op # Warmup Iteration 5: 5.161 ns/op Iteration 1: 5.264 ns/op Iteration 2: 5.259 ns/op Iteration 3: 5.138 ns/op Iteration 4: 5.444 ns/op Iteration 5: 5.437 ns/op # Processing profiler results: LinuxPerfAsmProfiler Result "test": 5.309 ±(99.9%) 0.504 ns/op [Average] (min, avg, max) = (5.138, 5.309, 5.444), stdev = 0.131 CI (99.9%): [4.805, 5.812] (assumes normal distribution) Secondary result "·asm": PrintAssembly processed: 168394 total address lines. Perf output processed (skipped 5.118 seconds): Column 1: cycles (8197 events) Column 2: instructions (8095 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. [0x7f82e134ffae:0x7f82e13500d5] in org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@16 (line 163) 0x00007f82e134ffae: mov 0xc(%r8),%r10d 0x00007f82e134ffb2: mov %r10,%rax 0x00007f82e134ffb5: shl $0x3,%rax 0x00007f82e134ffb9: mov %rax,%rdx 0x00007f82e134ffbc: mov %r11,0x20(%rsp) 0x00007f82e134ffc1: mov %r14,0x28(%rsp) ;*getfield v {reexecute=0 rethrow=0 return_oop=0} ; - org.openjdk.G1UselessBranch$Target::get@20 (line 26) ; - org.openjdk.G1UselessBranch::test@7 (line 16) ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@16 (line 163) 0.27% 0.32% ↗ 0x00007f82e134ffc6: mov %rbx,0x10(%rsp) ;*invokevirtual test {reexecute=0 rethrow=0 return_oop=0} │ ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@16 (line 163) 1.60% 1.68% │ 0x00007f82e134ffcb: mov 0x18(%rsp),%rsi 1.94% 2.42% │ 0x00007f82e134ffd0: data16 xchg %ax,%ax 0.66% 0.93% │ 0x00007f82e134ffd3: callq 0x00007f82d989f460 ; ImmutableOopMap{[0]=Oop [8]=Oop [16]=Oop [24]=Oop } │ ;*invokevirtual consume {reexecute=0 rethrow=0 return_oop=0} │ ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@19 (line 163) │ ; {optimized virtual_call} 0.77% 0.88% │ 0x00007f82e134ffd8: mov 0x10(%rsp),%rbx 3.04% 2.74% │ 0x00007f82e134ffdd: movzbl 0x94(%rbx),%r10d ;*getfield isDone {reexecute=0 rethrow=0 return_oop=0} │ ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@29 (line 165) 3.29% 3.89% │ 0x00007f82e134ffe5: add $0x1,%rbp ; ImmutableOopMap{rbx=Oop [0]=Oop [8]=Oop [24]=Oop } │ ;*ifeq {reexecute=1 rethrow=0 return_oop=0} │ ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@32 (line 165) 0.28% 0.38% │ 0x00007f82e134ffe9: test %eax,0x135e5011(%rip) # 0x00007f82f4935000 │ ; {poll} 0.87% 0.64% │ 0x00007f82e134ffef: test %r10d,%r10d │ 0x00007f82e134fff2: jne 0x00007f82e134ff13 2.27% 2.90% │ 0x00007f82e134fff8: mov 0x60(%r15),%r8 0.62% 0.70% │ 0x00007f82e134fffc: mov %r8,%r10 0.40% 0.37% │ 0x00007f82e134ffff: add $0x10,%r10 0.88% 0.90% │ 0x00007f82e1350003: cmp 0x70(%r15),%r10 ╭ │ 0x00007f82e1350007: jae 0x00007f82e13500ba 2.64% 2.88% │ │ 0x00007f82e135000d: mov %r10,0x60(%r15) 0.56% 0.67% │ │ 0x00007f82e1350011: prefetchnta 0xc0(%r10) 0.46% 0.53% │ │ 0x00007f82e1350019: mov 0x20(%rsp),%r11 0.89% 0.93% │ │ 0x00007f82e135001e: mov 0xa8(%r11),%r10 2.49% 2.69% │ │ 0x00007f82e1350025: mov %r10,(%r8) 0.66% 0.90% │ │ 0x00007f82e1350028: movl $0xf801d105,0x8(%r8) ; {metadata('org/openjdk/G1UselessBranch$Target')} 0.54% 0.52% │ │ 0x00007f82e1350030: mov %r12d,0xc(%r8) 0.94% 1.05% │ │ 0x00007f82e1350034: mov 0x60(%r15),%rax 2.50% 2.24% │ │ 0x00007f82e1350038: mov %rax,%r10 0.59% 0.43% │ │ 0x00007f82e135003b: add $0x10,%r10 0.41% 0.40% │ │ 0x00007f82e135003f: cmp 0x70(%r15),%r10 │ │ 0x00007f82e1350043: jae 0x00007f82e13500e2 ;*putfield v {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.openjdk.G1UselessBranch$Target::get@16 (line 24) │ │ ; - org.openjdk.G1UselessBranch::test@7 (line 16) │ │ ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@16 (line 163) 1.27% 0.83% │ │ 0x00007f82e1350049: mov %r10,0x60(%r15) 1.96% 1.61% │ │ 0x00007f82e135004d: prefetchnta 0xc0(%r10) 1.78% 1.78% │ │ 0x00007f82e1350055: mov 0x28(%rsp),%r14 0.46% 0.33% │ │ 0x00007f82e135005a: mov 0xa8(%r14),%r10 0.73% 0.65% │ │ 0x00007f82e1350061: mov %r10,(%rax) 5.94% 5.39% │ │ 0x00007f82e1350064: movl $0xf801d183,0x8(%rax) ; {metadata('org/openjdk/G1UselessBranch$Target$View')} 2.10% 1.99% │ │ 0x00007f82e135006b: mov %r12d,0xc(%rax) ;*new {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.openjdk.G1UselessBranch$Target::get@8 (line 24) │ │ ; - org.openjdk.G1UselessBranch::test@7 (line 16) │ │ ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@16 (line 163) 2.38% 2.12% │ │ 0x00007f82e135006f: mov %r8,%r9 0.13% 0.14% │ │ 0x00007f82e1350072: shr $0x3,%r9 1.52% 1.30% │ │ 0x00007f82e1350076: mov %r9d,0xc(%rax) 2.43% 2.47% │ │ 0x00007f82e135007a: movsbl 0x310(%r15),%r9d 1.10% 0.94% │ │ 0x00007f82e1350082: test %r9d,%r9d │╭│ 0x00007f82e1350085: jne 0x00007f82e1350087 0.43% 0.27% │↘│ 0x00007f82e1350087: mov %rax,%r10 1.28% 1.33% │ │ 0x00007f82e135008a: mov %rax,%r9 1.59% 1.91% │ │ 0x00007f82e135008d: shr $0x3,%r9 0.73% 0.84% │ │ 0x00007f82e1350091: mov %r9d,0xc(%r8) 0.23% 0.48% │ │ 0x00007f82e1350095: mov %r8,%r9 1.23% 1.74% │ │ 0x00007f82e1350098: xor %r9,%r10 1.89% 2.11% │ │ 0x00007f82e135009b: shr $0x15,%r10 0.74% 0.83% │ │ 0x00007f82e135009f: test %r10,%r10 │ │ 0x00007f82e13500a2: jne 0x00007f82e134ff3c ;*putfield v {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.openjdk.G1UselessBranch$Target::get@16 (line 24) │ │ ; - org.openjdk.G1UselessBranch::test@7 (line 16) │ │ ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@16 (line 163) 0.56% 0.31% │ │ 0x00007f82e13500a8: mov %rax,%rdx 1.50% 1.37% │ │ 0x00007f82e13500ab: mov %r11,0x20(%rsp) 1.79% 1.89% │ │ 0x00007f82e13500b0: mov %r14,0x28(%rsp) 1.12% 0.90% │ ╰ 0x00007f82e13500b5: jmpq 0x00007f82e134ffc6 ↘ 0x00007f82e13500ba: mov %rbx,0x10(%rsp) 0x00007f82e13500bf: movabs $0x7c00e8828,%rsi ; {metadata('org/openjdk/G1UselessBranch$Target')} 0x00007f82e13500c9: xchg %ax,%ax 0x00007f82e13500cb: callq 0x00007f82d9959de0 ; ImmutableOopMap{[0]=Oop [8]=Oop [16]=Oop [24]=Oop } ;*new {reexecute=0 rethrow=0 return_oop=1} ; - org.openjdk.G1UselessBranch::test@0 (line 16) ; - org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub@16 (line 163) ; {runtime_call _new_instance_Java} 0x00007f82e13500d0: mov 0x10(%rsp),%rbx 0x00007f82e13500d5: mov 0x20(%rsp),%r11 .................................................................................................... 64.47% 65.53% ....[Hottest Region 2].............................................................................. [0x7f82e134b960:0x7f82e134b9ea] in org.openjdk.jmh.infra.Blackhole::consume # parm0: rdx:rdx = 'java/lang/Object' # [sp+0x20] (sp of caller) 0x00007f82e134b960: mov 0x8(%rsi),%r10d 0x00007f82e134b964: shl $0x3,%r10 0x00007f82e134b968: cmp %r10,%rax 0x00007f82e134b96b: jne 0x00007f82d989f260 ; {runtime_call ic_miss_stub} 0x00007f82e134b971: data16 xchg %ax,%ax 0x00007f82e134b974: nopl 0x0(%rax,%rax,1) 0x00007f82e134b97c: data16 data16 xchg %ax,%ax [Verified Entry Point] 1.70% 1.87% 0x00007f82e134b980: sub $0x18,%rsp 2.31% 2.63% 0x00007f82e134b987: mov %rbp,0x10(%rsp) ;*synchronization entry ; - org.openjdk.jmh.infra.Blackhole::consume@-1 (line 316) 0.39% 0.28% 0x00007f82e134b98c: mov %rdx,%rbx 1.20% 1.25% 0x00007f82e134b98f: mov %rsi,%r13 1.73% 1.83% 0x00007f82e134b992: mov 0xc4(%rsi),%ebp ;*getfield tlrMask {reexecute=0 rethrow=0 return_oop=0} ; - org.openjdk.jmh.infra.Blackhole::consume@1 (line 316) 0.96% 1.07% 0x00007f82e134b998: imul $0x19660d,0xc0(%rsi),%r11d 0.95% 0.75% 0x00007f82e134b9a3: add $0x3c6ef35f,%r11d ;*iadd {reexecute=0 rethrow=0 return_oop=0} ; - org.openjdk.jmh.infra.Blackhole::consume@15 (line 317) 1.63% 1.15% 0x00007f82e134b9aa: mov %r11d,0xc0(%rsi) ;*putfield tlr {reexecute=0 rethrow=0 return_oop=0} ; - org.openjdk.jmh.infra.Blackhole::consume@17 (line 317) 2.18% 2.43% 0x00007f82e134b9b1: and %ebp,%r11d 0.70% 0.83% 0x00007f82e134b9b4: test %r11d,%r11d ╭ 0x00007f82e134b9b7: je 0x00007f82e134b9c5 ;*putfield obj1 {reexecute=0 rethrow=0 return_oop=0} │ ; - org.openjdk.jmh.infra.Blackhole::consume@29 (line 320) 0.68% 0.68% │ 0x00007f82e134b9b9: add $0x10,%rsp 1.15% 1.11% │ 0x00007f82e134b9bd: pop %rbp 2.00% 2.08% │ 0x00007f82e134b9be: test %eax,0x135e963c(%rip) # 0x00007f82f4935000 │ ; {poll_return} 0.66% 1.00% │ 0x00007f82e134b9c4: retq ↘ 0x00007f82e134b9c5: movsbl 0x310(%r15),%r11d 0x00007f82e134b9cd: test %r11d,%r11d 0x00007f82e134b9d0: jne 0x00007f82e134ba76 0x00007f82e134b9d6: mov %rbx,%r8 0x00007f82e134b9d9: mov %r8,%r10 0x00007f82e134b9dc: mov %r8,%r11 0x00007f82e134b9df: shr $0x3,%r11 0x00007f82e134b9e3: mov %r11d,0xd4(%r13) 0x00007f82e134b9ea: mov %r13,%r11 .................................................................................................... 18.24% 18.96% ....[Hottest Regions]............................................................................... 64.47% 65.53% [0x7f82e134ffae:0x7f82e13500d5] in org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub 18.24% 18.96% [0x7f82e134b960:0x7f82e134b9ea] in org.openjdk.jmh.infra.Blackhole::consume 4.99% 3.16% [0x5:0x7f82f36577f0] in sun.reflect.ClassFileAssembler::cpi 3.34% 3.38% [0xffffffff8105b83a:0xffffffff8105b83d] in [unknown] ([unknown]) 2.34% 3.59% [0x7f82d989f260:0x7f82f3ccc2e1] in sun.reflect.ClassFileAssembler::cpi 1.74% 1.77% [0x7f82e134f4c9:0x7f82e134f60b] in 0.66% 0.59% [0x7f82d989f260:0x7f82f3ccc2e1] in sun.reflect.ClassFileAssembler::cpi 0.40% 0.15% [0x7f82f3da4660:0x7f82f3da467b] in memset (libc-2.19.so) 0.15% 0.04% [0x5:0x7f82f36577f0] in sun.reflect.ClassFileAssembler::cpi 0.15% 0.05% [0x7f82d989f260:0x7f82f3ccc2e1] in sun.reflect.ClassFileAssembler::cpi 0.07% 0.07% [0xffffffff8102cdbd:0xffffffff8102cdc1] in [unknown] ([unknown]) 0.07% 0.07% [0xffffffff81032b28:0xffffffff81032b2d] in [unknown] ([unknown]) 0.07% 0.02% [0xffffffff817b3c20:0xffffffff817b3c20] in [unknown] ([unknown]) 0.07% 0.05% [0xffffffff817b5e50:0xffffffff817b5e6d] in [unknown] ([unknown]) 0.07% [0x5:0x7f82f36577f0] in sun.reflect.ClassFileAssembler::cpi 0.05% [0xffffffff810d305c:0xffffffff810d3068] in [unknown] ([unknown]) 0.05% [0x7f82f45053ff:0x7f82f450542c] in pthread_getspecific (libpthread-2.19.so) 0.04% 0.04% [0xffffffff8116aa9e:0xffffffff8116aa9e] in [unknown] ([unknown]) 0.04% 0.04% [0xffffffff817b5a00:0xffffffff817b5a00] in [unknown] ([unknown]) 0.04% [0x5:0x7f82f36577f0] in sun.reflect.ClassFileAssembler::cpi 2.93% 2.43% <...other 325 warm regions...> .................................................................................................... 99.99% 99.96% ....[Hottest Methods (after inlining)].............................................................. 64.47% 65.53% org.openjdk.generated.G1UselessBranch_test_jmhTest::test_avgt_jmhStub 18.24% 18.96% org.openjdk.jmh.infra.Blackhole::consume 9.95% 8.59% sun.reflect.ClassFileAssembler::cpi 4.73% 4.66% [unknown] ([unknown]) 1.77% 1.77% 0.44% 0.15% memset (libc-2.19.so) 0.05% pthread_getspecific (libpthread-2.19.so) 0.04% pthread_cond_timedwait@@GLIBC_2.3.2 (libpthread-2.19.so) 0.04% 0.06% vfprintf (libc-2.19.so) 0.01% 0.01% _IO_fwrite (libc-2.19.so) 0.01% 0.01% [unknown] (libpthread-2.19.so) 0.01% 0.01% __vdso_clock_gettime ([vdso]) 0.01% java.util.WeakHashMap::indexFor 0.01% 0.01% sem_wait (libpthread-2.19.so) 0.01% __strchrnul (libc-2.19.so) 0.01% __GI___mempcpy (libc-2.19.so) 0.01% 0.01% _IO_file_xsputn@@GLIBC_2.2.5 (libc-2.19.so) 0.01% __libc_disable_asynccancel (libc-2.19.so) 0.01% 0.01% 0.12% 0.06% <...other 10 warm methods...> .................................................................................................... 99.99% 99.84% ....[Distribution by Area].......................................................................... 94.51% 94.86% 4.73% 4.66% 0.61% 0.37% 0.12% 0.06% 0.01% 0.01% .................................................................................................... 99.99% 99.96% # Run complete. Total time: 00:00:13 Benchmark Mode Cnt Score Error Units G1UselessBranch.test avgt 5 5.309 ± 0.504 ns/op G1UselessBranch.test:·asm avgt NaN ---