# JMH 1.11.2 (released 75 days ago) # VM version: JDK 9-ea, VM 9-ea+99-2015-12-23-183027.javare.4146.nc # VM invoker: /home/shade/Install/jdk9b99/bin/java # VM options: -XX:+UseParallelGC -Xms1g -Xmx1g # 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.ArrayZeroingBench.arraycopy_dstLength # Parameters: (size = 10) # Run progress: 0.00% complete, ETA 00:00:20 # 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: 25.232 ns/op # Warmup Iteration 2: 24.629 ns/op # Warmup Iteration 3: 23.792 ns/op # Warmup Iteration 4: 23.644 ns/op # Warmup Iteration 5: 23.989 ns/op Iteration 1: 23.647 ns/op Iteration 2: 23.826 ns/op Iteration 3: 23.655 ns/op Iteration 4: 23.912 ns/op Iteration 5: 25.216 ns/op # Processing profiler results: LinuxPerfAsmProfiler Result "arraycopy_dstLength": 24.051 ±(99.9%) 2.545 ns/op [Average] (min, avg, max) = (23.647, 24.051, 25.216), stdev = 0.661 CI (99.9%): [21.506, 26.596] (assumes normal distribution) Secondary result "·asm": PrintAssembly processed: 160315 total address lines. Perf output processed (skipped 5.126 seconds): Column 1: cycles (7759 events) Column 2: instructions (7815 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. [0x7f42b52a93cc:0x7f42b52a956e] in org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub ; {runtime_call _new_array_Java} 0x00007f42b52a93cc: mov 0x8(%rsp),%rbx 0x00007f42b52a93d1: mov 0x20(%rsp),%r14 0x00007f42b52a93d6: mov 0x28(%rsp),%r10d 0x00007f42b52a93db: mov %rax,%r13 ╭ 0x00007f42b52a93de: jmpq 0x00007f42b52a94c7 │ 0x00007f42b52a93e3: nopw 0x0(%rax,%rax,1) │ 0x00007f42b52a93ec: data16 data16 xchg %ax,%ax │ ↗ 0x00007f42b52a93f0: movabs $0x7f42ad808e60,%r10 │ │ 0x00007f42b52a93fa: callq *%r10 0.70% 0.44% │↗│↗ 0x00007f42b52a93fd: mov %r13,%rdx 0.01% ││││ 0x00007f42b52a9400: mov %r14,%rbp 0.01% 0.03% ││││ 0x00007f42b52a9403: mov %rbx,0x8(%rsp) ;*invokestatic arraycopy {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.openjdk.ArrayZeroingBench::arraycopy_dstLength@19 (line 79) ││││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub@16 (line 199) 0.21% 0.44% ││││ 0x00007f42b52a9408: mov 0x18(%rsp),%rsi 1.10% 1.04% ││││ 0x00007f42b52a940d: xchg %ax,%ax 0.03% ││││ 0x00007f42b52a940f: callq 0x00007f42ad7fb460 ; ImmutableOopMap{[0]=Oop [8]=Oop [16]=Oop [24]=Oop } ││││ ;*invokevirtual consume {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub@19 (line 199) ││││ ; {optimized virtual_call} 0.89% 0.63% ││││ 0x00007f42b52a9414: mov 0x10(%rsp),%r10 0.01% 0.05% ││││ 0x00007f42b52a9419: movzbl 0x94(%r10),%r11d ;*getfield isDone {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub@29 (line 201) 0.01% 0.08% ││││ 0x00007f42b52a9421: mov %rbp,%r14 0.92% 2.06% ││││ 0x00007f42b52a9424: add $0x1,%r14 ; ImmutableOopMap{[0]=Oop [8]=Oop [16]=Oop [24]=Oop } ││││ ;*ifeq {reexecute=1 rethrow=0 return_oop=0} ││││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub@32 (line 201) ││││ 0x00007f42b52a9428: test %eax,0x1257bbd2(%rip) # 0x00007f42c7825000 ││││ ; {poll} 0.03% ││││ 0x00007f42b52a942e: test %r11d,%r11d ││││ 0x00007f42b52a9431: jne 0x00007f42b52a957c ;*aload {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub@13 (line 199) 0.01% ││││ 0x00007f42b52a9437: mov 0x8(%rsp),%rbx 0.99% 1.22% ││││ 0x00007f42b52a943c: mov 0x10(%rbx),%ebp ;*getfield src {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.openjdk.ArrayZeroingBench::arraycopy_dstLength@1 (line 77) ││││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub@16 (line 199) 2.14% 3.20% ││││ 0x00007f42b52a943f: mov 0xc(%rbx),%r10d ;*getfield size {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.openjdk.ArrayZeroingBench::arraycopy_dstLength@6 (line 78) ││││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub@16 (line 199) 0.01% ││││ 0x00007f42b52a9443: cmp $0x40000,%r10d ││││ 0x00007f42b52a944a: ja 0x00007f42b52a93ad 0.06% ││││ 0x00007f42b52a9450: mov 0x60(%r15),%r13 0.03% 0.05% ││││ 0x00007f42b52a9454: movslq %r10d,%rcx 0.88% 1.82% ││││ 0x00007f42b52a9457: shl $0x2,%rcx ││││ 0x00007f42b52a945b: add $0x17,%rcx 0.04% 0.03% ││││ 0x00007f42b52a945f: mov %rcx,%r11 0.01% 0.03% ││││ 0x00007f42b52a9462: and $0xfffffffffffffff8,%r11 0.84% 1.87% ││││ 0x00007f42b52a9466: mov %r13,%r8 ││││ 0x00007f42b52a9469: add %r11,%r8 0.01% 0.05% ││││ 0x00007f42b52a946c: cmp 0x70(%r15),%r8 ││││ 0x00007f42b52a9470: jae 0x00007f42b52a93ad 0.03% 0.05% ││││ 0x00007f42b52a9476: mov %r8,0x60(%r15) 0.80% 1.75% ││││ 0x00007f42b52a947a: prefetchnta 0xc0(%r8) 1.44% 2.93% ││││ 0x00007f42b52a9482: movq $0x1,0x0(%r13) 0.01% 0.01% ││││ 0x00007f42b52a948a: prefetchnta 0x100(%r8) 0.04% 0.04% ││││ 0x00007f42b52a9492: movl $0x2001dfff,0x8(%r13) ; {metadata('org/openjdk/ArrayZeroingBench$Foo'[])} 0.18% 0.20% ││││ 0x00007f42b52a949a: mov %r10d,0xc(%r13) 0.82% 1.55% ││││ 0x00007f42b52a949e: prefetchnta 0x140(%r8) 0.09% 0.06% ││││ 0x00007f42b52a94a6: prefetchnta 0x180(%r8) 0.09% 0.10% ││││ 0x00007f42b52a94ae: mov %r13,%rdi 0.17% 0.26% ││││ 0x00007f42b52a94b1: add $0x10,%rdi 0.63% 0.49% ││││ 0x00007f42b52a94b5: shr $0x3,%rcx 0.01% ││││ 0x00007f42b52a94b9: add $0xfffffffffffffffe,%rcx 0.04% 0.06% ││││ 0x00007f42b52a94bd: xor %rax,%rax 0.13% 0.15% ││││ 0x00007f42b52a94c0: shl $0x3,%rcx 0.75% 1.01% ││││ 0x00007f42b52a94c4: rep rex.W stos %al,%es:(%rdi) ;*arraylength {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.openjdk.ArrayZeroingBench::arraycopy_dstLength@18 (line 79) ││││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub@16 (line 199) 20.99% 22.55% ↘│││ 0x00007f42b52a94c7: mov 0xc(%rbp),%r8d ; implicit exception: dispatches to 0x00007f42b52a966e 1.12% 0.09% │││ 0x00007f42b52a94cb: mov %rbp,%r11 ;*getfield src {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.openjdk.ArrayZeroingBench::arraycopy_dstLength@1 (line 77) │││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub@16 (line 199) │││ 0x00007f42b52a94ce: cmp %r10d,%r8d │││ 0x00007f42b52a94d1: jb 0x00007f42b52a95a5 0.58% 0.01% │││ 0x00007f42b52a94d7: test %r10d,%r10d ╰││ 0x00007f42b52a94da: jle 0x00007f42b52a93fd ││ 0x00007f42b52a94e0: mov 0x8(%rbp),%r8d 0.45% ││ 0x00007f42b52a94e4: lea 0x10(%rbp),%rdi ││ 0x00007f42b52a94e8: mov %r13,%rsi 0.63% ││ 0x00007f42b52a94eb: add $0x10,%rsi ││ 0x00007f42b52a94ef: movslq %r10d,%rdx 0.52% ││ 0x00007f42b52a94f2: cmp $0x2001dfff,%r8d ; {metadata('org/openjdk/ArrayZeroingBench$Foo'[])} ╰│ 0x00007f42b52a94f9: je 0x00007f42b52a93f0 │ 0x00007f42b52a94ff: mov %r11,0x28(%rsp) 5.32% │ 0x00007f42b52a9504: mov %r13,0x20(%rsp) 0.01% │ 0x00007f42b52a9509: mov %r10d,%r13d │ 0x00007f42b52a950c: mov %r14,0x8(%rsp) 0.01% │ 0x00007f42b52a9511: mov %rbx,%rbp 0.98% │ 0x00007f42b52a9514: mov $0x30,%ecx 0.03% │ 0x00007f42b52a9519: movabs $0x1000efe08,%r8 ; {metadata('org/openjdk/ArrayZeroingBench$Foo')} 0.01% │ 0x00007f42b52a9523: movabs $0x7f42ad8091a0,%r10 0.01% │ 0x00007f42b52a952d: callq *%r10 0.90% 0.64% │ 0x00007f42b52a9530: test %eax,%eax │ 0x00007f42b52a9532: jne 0x00007f42b52a95e6 0.03% 0.01% │ 0x00007f42b52a9538: mov 0x20(%rsp),%r13 0.14% 0.13% ╰ 0x00007f42b52a953d: jmpq 0x00007f42b52a93fd 0x00007f42b52a9542: mov %r10d,%r14d 0x00007f42b52a9545: mov $0x30,%ecx 0x00007f42b52a954a: movabs $0x1000efe08,%r8 ; {metadata('org/openjdk/ArrayZeroingBench$Foo')} 0x00007f42b52a9554: movabs $0x7f42ad8091a0,%r10 0x00007f42b52a955e: callq *%r10 0x00007f42b52a9561: test %eax,%eax 0x00007f42b52a9563: je 0x00007f42b52a9372 0x00007f42b52a9569: not %eax 0x00007f42b52a956b: mov %eax,%r8d 0x00007f42b52a956e: mov %r14d,%r10d .................................................................................................... 45.75% 45.26% ....[Hottest Region 2].............................................................................. [0x7f42ad80916e:0x7f42ad809208] in StubRoutines::checkcast_arraycopy 0x00007f42ad80916e: sub %rsi,%rcx 0x00007f42ad809171: movabs $0x7f42acbaa000,%rax 0x00007f42ad80917b: add %rax,%rsi ↗ 0x00007f42ad80917e: movb $0x0,(%rsi,%rcx,1) │ 0x00007f42ad809182: dec %rcx ╰ 0x00007f42ad809185: jge Stub::oop_arraycopy_uninit+190 0x00007f42ad80917e 0x00007f42ad809187: xor %rax,%rax 0x00007f42ad80918a: leaveq 0x00007f42ad80918b: retq StubRoutines::checkcast_arraycopy [0x00007f42ad8091a0, 0x00007f42ad80926b[ (203 bytes) 1.92% 0.05% 0x00007f42ad8091a0: push %rbp 0.98% 0.04% 0x00007f42ad8091a1: mov %rsp,%rbp 0.48% 0.03% 0x00007f42ad8091a4: sub $0x10,%rsp 0x00007f42ad8091a8: mov %r13,(%rsp) 3.26% 0.44% 0x00007f42ad8091ac: mov %r14,0x8(%rsp) 1.01% 1.37% 0x00007f42ad8091b1: lea (%rdi,%rdx,4),%rdi 0x00007f42ad8091b5: lea (%rsi,%rdx,4),%r13 0x00007f42ad8091b9: mov %rdx,%r14 0x00007f42ad8091bc: neg %rdx 0.88% 1.82% ╭ 0x00007f42ad8091bf: jne Stub::checkcast_arraycopy+62 0x00007f42ad8091de │ 0x00007f42ad8091c5: xor %rax,%rax │ 0x00007f42ad8091c8: jmpq Stub::checkcast_arraycopy+192 0x00007f42ad809260 │ 0x00007f42ad8091cd: data16 xchg %ax,%ax 3.58% 6.65% │↗↗↗ 0x00007f42ad8091d0: mov %eax,0x0(%r13,%rdx,4) 1.59% 2.50% ││││ 0x00007f42ad8091d5: inc %rdx ││││ 0x00007f42ad8091d8: je Stub::checkcast_arraycopy+147 0x00007f42ad809233 1.88% 1.66% ↘│││ 0x00007f42ad8091de: mov (%rdi,%rdx,4),%eax 4.43% 1.39% │││ 0x00007f42ad8091e1: test %rax,%rax ╰││ 0x00007f42ad8091e4: je Stub::checkcast_arraycopy+48 0x00007f42ad8091d0 3.78% 5.54% ││ 0x00007f42ad8091e6: mov 0x8(%rax),%r11d 5.43% 7.95% ││ 0x00007f42ad8091ea: shl $0x3,%r11 3.45% 4.40% ││ 0x00007f42ad8091ee: cmp %r8,%r11 ╰│ 0x00007f42ad8091f1: je Stub::checkcast_arraycopy+48 0x00007f42ad8091d0 │ 0x00007f42ad8091f3: cmp (%r11,%rcx,1),%r8 ╰ 0x00007f42ad8091f7: je Stub::checkcast_arraycopy+48 0x00007f42ad8091d0 0x00007f42ad8091f9: cmp $0x18,%ecx 0x00007f42ad8091fc: jne Stub::checkcast_arraycopy+131 0x00007f42ad809223 0x00007f42ad809202: push %rax 0x00007f42ad809203: mov %r8,%rax 0x00007f42ad809206: push %rcx 0x00007f42ad809207: push %rdi 0x00007f42ad809208: mov 0x20(%r11),%rdi .................................................................................................... 32.66% 33.83% ....[Hottest Regions]............................................................................... 45.75% 45.26% [0x7f42b52a93cc:0x7f42b52a956e] in org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub 32.66% 33.83% [0x7f42ad80916e:0x7f42ad809208] in StubRoutines::checkcast_arraycopy 5.21% 6.54% [0x7f42ad809219:0x7f42ad80929c] in StubRoutines::checkcast_arraycopy 5.07% 4.99% [0xffffffff8105b83a:0xffffffff8105b83c] in [unknown] ([unknown]) 3.69% 1.57% [0x7f42b52a5e60:0x7f42b52a5ee5] in org.openjdk.jmh.infra.Blackhole::consume 2.71% 2.24% [0x7f42c62fd970:0x7f42c62fd979] in SpinPause (libjvm.so) 1.38% 2.19% [0x7f42c659c7d8:0x7f42c659c7e1] in _ZN22ParallelTaskTerminator17offer_terminationEP20TerminatorTerminator (libjvm.so) 0.14% 0.13% [0x7f42c64f822f:0x7f42c64f8297] in _ZN13RelocIterator10set_limitsEPhS0_.part.36 (libjvm.so) 0.09% 0.03% [0xffffffff813b2d37:0xffffffff813b2d37] in [unknown] ([unknown]) 0.08% 0.08% [0xffffffff81032b28:0xffffffff81032b2d] in [unknown] ([unknown]) 0.08% 0.04% [0xffffffff810d303d:0xffffffff810d3068] in [unknown] ([unknown]) 0.08% 0.01% [0xffffffff811ee751:0xffffffff811ee775] in [unknown] ([unknown]) 0.08% 0.03% [0xffffffff817b5e50:0xffffffff817b5e89] in [unknown] ([unknown]) 0.06% 0.03% [0xffffffff811ee6e8:0xffffffff811ee726] in [unknown] ([unknown]) 0.06% 0.04% [0xffffffff817b3c20:0xffffffff817b3c22] in [unknown] ([unknown]) 0.06% 0.13% [0x7f42c6460641:0x7f42c646069c] in _ZN12outputStream15update_positionEPKcm (libjvm.so) 0.06% 0.10% [0x7f42c6549f28:0x7f42c6549f33] in _ZN11StringTable17unlink_or_oops_doEP17BoolObjectClosureP10OopClosurePiS4_ (libjvm.so) 0.05% 0.03% [0xffffffff817b57c4:0xffffffff817b57c4] in [unknown] ([unknown]) 0.05% [0x7f42c6549fa2:0x7f42c6549fb8] in _ZN11StringTable17unlink_or_oops_doEP17BoolObjectClosureP10OopClosurePiS4_ (libjvm.so) 0.04% 0.04% [0xffffffff8102cdbb:0xffffffff8102cdbb] in [unknown] ([unknown]) 2.59% 2.70% <...other 284 warm regions...> .................................................................................................... 99.99% 99.99% ....[Hottest Methods (after inlining)].............................................................. 45.75% 45.26% org.openjdk.generated.ArrayZeroingBench_arraycopy_dstLength_jmhTest::arraycopy_dstLength_avgt_jmhStub 37.87% 40.37% StubRoutines::checkcast_arraycopy 6.91% 6.63% [unknown] ([unknown]) 3.69% 1.57% org.openjdk.jmh.infra.Blackhole::consume 2.71% 2.24% SpinPause (libjvm.so) 1.38% 2.19% _ZN22ParallelTaskTerminator17offer_terminationEP20TerminatorTerminator (libjvm.so) 0.14% 0.06% vfprintf (libc-2.19.so) 0.14% 0.13% _ZN13RelocIterator10set_limitsEPhS0_.part.36 (libjvm.so) 0.12% 0.10% _ZN11StringTable17unlink_or_oops_doEP17BoolObjectClosureP10OopClosurePiS4_ (libjvm.so) 0.08% 0.05% 0.08% 0.06% _IO_fwrite (libc-2.19.so) 0.06% 0.01% _ZN13defaultStream4holdEl (libjvm.so) 0.06% 0.13% _ZN12outputStream15update_positionEPKcm (libjvm.so) 0.04% 0.03% __strchrnul (libc-2.19.so) 0.04% 0.04% _ZN9xmlStream10write_textEPKcm (libjvm.so) 0.04% _ZN7nmethod21print_code_comment_onEP12outputStreamiPhS2_ (libjvm.so) 0.04% 0.01% _ZN13defaultStream5writeEPKcm (libjvm.so) 0.04% 0.05% _ZN12outputStream5printEPKcz (libjvm.so) 0.03% 0.03% _ZN12stringStream5writeEPKcm (libjvm.so) 0.03% 0.01% jio_print (libjvm.so) 0.76% 0.24% <...other 49 warm methods...> .................................................................................................... 99.99% 99.22% ....[Distribution by Area].......................................................................... 87.41% 87.26% 6.91% 6.63% 5.14% 5.55% 0.45% 0.46% 0.08% 0.09% .................................................................................................... 99.99% 99.99% # JMH 1.11.2 (released 75 days ago) # VM version: JDK 9-ea, VM 9-ea+99-2015-12-23-183027.javare.4146.nc # VM invoker: /home/shade/Install/jdk9b99/bin/java # VM options: -XX:+UseParallelGC -Xms1g -Xmx1g # 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.ArrayZeroingBench.arraycopy_srcLength # Parameters: (size = 10) # Run progress: 50.00% complete, ETA 00:00:13 # 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: 16.733 ns/op # Warmup Iteration 2: 15.312 ns/op # Warmup Iteration 3: 14.466 ns/op # Warmup Iteration 4: 14.649 ns/op # Warmup Iteration 5: 14.781 ns/op Iteration 1: 14.750 ns/op Iteration 2: 14.323 ns/op Iteration 3: 14.392 ns/op Iteration 4: 14.667 ns/op Iteration 5: 14.585 ns/op # Processing profiler results: LinuxPerfAsmProfiler Result "arraycopy_srcLength": 14.543 ±(99.9%) 0.697 ns/op [Average] (min, avg, max) = (14.323, 14.543, 14.750), stdev = 0.181 CI (99.9%): [13.846, 15.241] (assumes normal distribution) Secondary result "·asm": PrintAssembly processed: 160149 total address lines. Perf output processed (skipped 5.115 seconds): Column 1: cycles (7930 events) Column 2: instructions (7933 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. [0x7f1cf91b1249:0x7f1cf91b12ec] in StubRoutines::checkcast_arraycopy_uninit 0x00007f1cf91b1249: movabs $0x7f1cf837c000,%r10 0x00007f1cf91b1253: add %r10,%rsi ↗ 0x00007f1cf91b1256: movb $0x0,(%rsi,%r14,1) │ 0x00007f1cf91b125b: dec %r14 ╰ 0x00007f1cf91b125e: jge Stub::checkcast_arraycopy+182 0x00007f1cf91b1256 0x00007f1cf91b1260: mov (%rsp),%r13 0x00007f1cf91b1264: mov 0x8(%rsp),%r14 0x00007f1cf91b1269: leaveq 0x00007f1cf91b126a: retq StubRoutines::checkcast_arraycopy_uninit [0x00007f1cf91b1280, 0x00007f1cf91b134b[ (203 bytes) 1.36% 1.36% 0x00007f1cf91b1280: push %rbp 0.09% 0.04% 0x00007f1cf91b1281: mov %rsp,%rbp 0.15% 0.18% 0x00007f1cf91b1284: sub $0x10,%rsp 1.12% 0.89% 0x00007f1cf91b1288: mov %r13,(%rsp) 0.18% 0.04% 0x00007f1cf91b128c: mov %r14,0x8(%rsp) 0.20% 0.10% 0x00007f1cf91b1291: lea (%rdi,%rdx,4),%rdi 0.03% 0x00007f1cf91b1295: lea (%rsi,%rdx,4),%r13 1.63% 1.69% 0x00007f1cf91b1299: mov %rdx,%r14 0.03% 0.03% 0x00007f1cf91b129c: neg %rdx 0.28% 0.15% ╭ 0x00007f1cf91b129f: jne Stub::checkcast_arraycopy_uninit+62 0x00007f1cf91b12be │ 0x00007f1cf91b12a5: xor %rax,%rax │ 0x00007f1cf91b12a8: jmpq Stub::checkcast_arraycopy_uninit+192 0x00007f1cf91b1340 │ 0x00007f1cf91b12ad: data16 xchg %ax,%ax 7.00% 7.53% │↗↗↗ 0x00007f1cf91b12b0: mov %eax,0x0(%r13,%rdx,4) 2.85% 3.35% ││││ 0x00007f1cf91b12b5: inc %rdx ││││ 0x00007f1cf91b12b8: je Stub::checkcast_arraycopy_uninit+147 0x00007f1cf91b1313 2.33% 1.47% ↘│││ 0x00007f1cf91b12be: mov (%rdi,%rdx,4),%eax 3.33% 3.53% │││ 0x00007f1cf91b12c1: test %rax,%rax ╰││ 0x00007f1cf91b12c4: je Stub::checkcast_arraycopy_uninit+48 0x00007f1cf91b12b0 6.39% 6.58% ││ 0x00007f1cf91b12c6: mov 0x8(%rax),%r11d 5.08% 5.22% ││ 0x00007f1cf91b12ca: shl $0x3,%r11 4.19% 4.56% ││ 0x00007f1cf91b12ce: cmp %r8,%r11 0.01% ╰│ 0x00007f1cf91b12d1: je Stub::checkcast_arraycopy_uninit+48 0x00007f1cf91b12b0 │ 0x00007f1cf91b12d3: cmp (%r11,%rcx,1),%r8 ╰ 0x00007f1cf91b12d7: je Stub::checkcast_arraycopy_uninit+48 0x00007f1cf91b12b0 0x00007f1cf91b12d9: cmp $0x18,%ecx 0x00007f1cf91b12dc: jne Stub::checkcast_arraycopy_uninit+131 0x00007f1cf91b1303 0x00007f1cf91b12e2: push %rax 0x00007f1cf91b12e3: mov %r8,%rax 0x00007f1cf91b12e6: push %rcx 0x00007f1cf91b12e7: push %rdi 0x00007f1cf91b12e8: mov 0x20(%r11),%rdi 0x00007f1cf91b12ec: mov (%rdi),%ecx .................................................................................................... 36.24% 36.72% ....[Hottest Region 2].............................................................................. [0x7f1d00c51d54:0x7f1d00c51eed] in org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub 0x00007f1d00c51d54: mov 0x18(%rsp),%rbx 0x00007f1d00c51d59: mov 0x20(%rsp),%r14 0x00007f1d00c51d5e: mov 0x28(%rsp),%r8d 0x00007f1d00c51d63: mov 0x30(%rsp),%rcx ╭ 0x00007f1d00c51d68: jmpq 0x00007f1d00c51e30 │ 0x00007f1d00c51d6d: data16 xchg %ax,%ax │ ↗ 0x00007f1d00c51d70: mov %rbp,%rdi │ │ 0x00007f1d00c51d73: mov %r9,%rsi │ │ 0x00007f1d00c51d76: movabs $0x7f1cf91b0c00,%r10 │ │ 0x00007f1d00c51d80: callq *%r10 1.58% 2.14% │ │↗ 0x00007f1d00c51d83: mov %r13,%rdx │ ││ 0x00007f1d00c51d86: mov %r14,0x18(%rsp) 0.43% 0.20% │ ││ 0x00007f1d00c51d8b: mov %rbx,%rbp ;*invokestatic arraycopy {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - org.openjdk.ArrayZeroingBench::arraycopy_srcLength@19 (line 71) │ ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@16 (line 199) 1.26% 1.87% │ ││ 0x00007f1d00c51d8e: mov 0x10(%rsp),%rsi 0.05% 0.11% │ ││ 0x00007f1d00c51d93: callq 0x00007f1cf91a3460 ; ImmutableOopMap{rbp=Oop [0]=Oop [8]=Oop [16]=Oop } │ ││ ;*invokevirtual consume {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@19 (line 199) │ ││ ; {optimized virtual_call} 1.66% 1.74% │ ││ 0x00007f1d00c51d98: mov 0x8(%rsp),%r10 0.01% 0.03% │ ││ 0x00007f1d00c51d9d: movzbl 0x94(%r10),%r10d ;*getfield isDone {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@29 (line 201) 0.79% 0.53% │ ││ 0x00007f1d00c51da5: mov 0x18(%rsp),%r14 1.27% 1.37% │ ││ 0x00007f1d00c51daa: add $0x1,%r14 ; ImmutableOopMap{rbp=Oop [0]=Oop [8]=Oop [16]=Oop } │ ││ ;*ifeq {reexecute=1 rethrow=0 return_oop=0} │ ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@32 (line 201) 0.01% │ ││ 0x00007f1d00c51dae: test %eax,0x1238a24c(%rip) # 0x00007f1d12fdc000 │ ││ ; {poll} 0.09% 0.01% │ ││ 0x00007f1d00c51db4: test %r10d,%r10d │ ││ 0x00007f1d00c51db7: jne 0x00007f1d00c51f6f ;*aload {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@13 (line 199) 0.15% 0.15% │ ││ 0x00007f1d00c51dbd: mov %rbp,%rbx 1.31% 1.13% │ ││ 0x00007f1d00c51dc0: mov 0x10(%rbp),%ebp ;*getfield src {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - org.openjdk.ArrayZeroingBench::arraycopy_srcLength@1 (line 69) │ ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@16 (line 199) 0.28% 0.28% │ ││ 0x00007f1d00c51dc3: mov 0xc(%rbx),%r8d ;*getfield size {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - org.openjdk.ArrayZeroingBench::arraycopy_srcLength@6 (line 70) │ ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@16 (line 199) 0.01% 0.05% │ ││ 0x00007f1d00c51dc7: movslq %r8d,%rcx 0.39% 0.49% │ ││ 0x00007f1d00c51dca: shl $0x2,%rcx 1.42% 1.47% │ ││ 0x00007f1d00c51dce: add $0x17,%rcx 0.50% 0.88% │ ││ 0x00007f1d00c51dd2: cmp $0x40000,%r8d │ ││ 0x00007f1d00c51dd9: ja 0x00007f1d00c51d2d 0.05% 0.05% │ ││ 0x00007f1d00c51ddf: mov 0x60(%r15),%rax 0.19% 0.11% │ ││ 0x00007f1d00c51de3: mov %rcx,%r10 0.78% 0.50% │ ││ 0x00007f1d00c51de6: and $0xfffffffffffffff8,%r10 0.57% 0.67% │ ││ 0x00007f1d00c51dea: mov %rax,%r11 0.10% 0.09% │ ││ 0x00007f1d00c51ded: add %r10,%r11 0.97% 0.69% │ ││ 0x00007f1d00c51df0: cmp 0x70(%r15),%r11 │ ││ 0x00007f1d00c51df4: jae 0x00007f1d00c51d2d 1.29% 1.25% │ ││ 0x00007f1d00c51dfa: mov %r11,0x60(%r15) 0.04% 0.01% │ ││ 0x00007f1d00c51dfe: prefetchnta 0xc0(%r11) 4.99% 3.98% │ ││ 0x00007f1d00c51e06: movq $0x1,(%rax) 0.08% 0.05% │ ││ 0x00007f1d00c51e0d: prefetchnta 0x100(%r11) 0.14% 0.16% │ ││ 0x00007f1d00c51e15: movl $0x2001dfff,0x8(%rax) ; {metadata('org/openjdk/ArrayZeroingBench$Foo'[])} 0.04% 0.01% │ ││ 0x00007f1d00c51e1c: mov %r8d,0xc(%rax) 1.58% 1.07% │ ││ 0x00007f1d00c51e20: prefetchnta 0x140(%r11) 0.10% 0.19% │ ││ 0x00007f1d00c51e28: prefetchnta 0x180(%r11) 0.15% 0.15% ↘ ││ 0x00007f1d00c51e30: mov %rax,%r13 ;*anewarray {reexecute=0 rethrow=0 return_oop=0} ││ ; - org.openjdk.ArrayZeroingBench::arraycopy_srcLength@9 (line 70) ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@16 (line 199) 0.04% 0.01% ││ 0x00007f1d00c51e33: mov 0xc(%rbp),%r11d ;*arraylength {reexecute=0 rethrow=0 return_oop=0} ││ ; - org.openjdk.ArrayZeroingBench::arraycopy_srcLength@18 (line 71) ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@16 (line 199) ││ ; implicit exception: dispatches to 0x00007f1d00c520ee 1.34% 0.97% ││ 0x00007f1d00c51e37: shr $0x3,%rcx 0.08% 0.05% ││ 0x00007f1d00c51e3b: mov %r8d,%r10d 0.16% 0.21% ││ 0x00007f1d00c51e3e: mov %rcx,%rdi 0.03% 0.01% ││ 0x00007f1d00c51e41: add $0xfffffffffffffffe,%rdi 1.31% 0.95% ││ 0x00007f1d00c51e45: mov %r13,%r9 0.06% 0.05% ││ 0x00007f1d00c51e48: add $0x10,%r9 0.18% 0.13% ││ 0x00007f1d00c51e4c: mov %rbp,%rsi ;*getfield src {reexecute=0 rethrow=0 return_oop=0} ││ ; - org.openjdk.ArrayZeroingBench::arraycopy_srcLength@1 (line 69) ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@16 (line 199) 0.01% ││ 0x00007f1d00c51e4f: cmp %r11d,%r10d ││ 0x00007f1d00c51e52: jb 0x00007f1d00c51f98 1.25% 1.12% ││ 0x00007f1d00c51e58: test %r11d,%r11d ││ 0x00007f1d00c51e5b: jle 0x00007f1d00c51ff0 0.05% 0.01% ││ 0x00007f1d00c51e61: mov 0x8(%rbp),%r10d ;*invokestatic arraycopy {reexecute=0 rethrow=0 return_oop=0} ││ ; - org.openjdk.ArrayZeroingBench::arraycopy_srcLength@19 (line 71) ││ ; - org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub@16 (line 199) 0.11% 0.14% ││ 0x00007f1d00c51e65: lea 0x10(%rbp),%rbp ││ 0x00007f1d00c51e69: movslq %r11d,%rdx 1.37% 1.12% ││ 0x00007f1d00c51e6c: cmp %r8d,%r11d ╭││ 0x00007f1d00c51e6f: jl 0x00007f1d00c51eda 0.09% 0.05% │││ 0x00007f1d00c51e71: cmp $0x2001dfff,%r10d ; {metadata('org/openjdk/ArrayZeroingBench$Foo'[])} │╰│ 0x00007f1d00c51e78: je 0x00007f1d00c51d70 0.24% 0.05% │ │ 0x00007f1d00c51e7e: mov %rsi,0x48(%rsp) 0.06% 0.08% │ │ 0x00007f1d00c51e83: mov %r9,0x40(%rsp) 1.45% 1.41% │ │ 0x00007f1d00c51e88: mov %rdi,0x38(%rsp) 0.03% 0.03% │ │ 0x00007f1d00c51e8d: mov %r11d,0x30(%rsp) 0.13% 0.08% │ │ 0x00007f1d00c51e92: mov %r13,0x28(%rsp) 0.01% │ │ 0x00007f1d00c51e97: mov %r14,0x20(%rsp) 1.32% 1.13% │ │ 0x00007f1d00c51e9c: mov %rbx,0x18(%rsp) 0.05% │ │ 0x00007f1d00c51ea1: mov %rbp,%rdi 0.10% 0.11% │ │ 0x00007f1d00c51ea4: mov %r9,%rsi 0.01% 0.01% │ │ 0x00007f1d00c51ea7: mov $0x30,%ecx 1.11% 1.20% │ │ 0x00007f1d00c51eac: movabs $0x1000efe08,%r8 ; {metadata('org/openjdk/ArrayZeroingBench$Foo')} 0.04% 0.06% │ │ 0x00007f1d00c51eb6: movabs $0x7f1cf91b1280,%r10 0.10% 0.10% │ │ 0x00007f1d00c51ec0: callq *%r10 1.42% 1.69% │ │ 0x00007f1d00c51ec3: test %eax,%eax │ ╰ 0x00007f1d00c51ec5: je 0x00007f1d00c51d83 │ 0x00007f1d00c51ecb: mov 0x38(%rsp),%rdi │ 0x00007f1d00c51ed0: mov 0x40(%rsp),%r9 │ 0x00007f1d00c51ed5: jmpq 0x00007f1d00c51fb1 ↘ 0x00007f1d00c51eda: vmovq %rbp,%xmm0 0x00007f1d00c51edf: mov %rdi,%r8 0x00007f1d00c51ee2: mov %rdx,%rax 0x00007f1d00c51ee5: shl $0x2,%rax 0x00007f1d00c51ee9: add $0x10,%rax 0x00007f1d00c51eed: mov %rax,%rbp .................................................................................................... 34.41% 32.28% ....[Hottest Regions]............................................................................... 36.24% 36.72% [0x7f1cf91b1249:0x7f1cf91b12ec] in StubRoutines::checkcast_arraycopy_uninit 34.41% 32.28% [0x7f1d00c51d54:0x7f1d00c51eed] in org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub 7.74% 10.26% [0x7f1cf91b12f9:0x7f1cf91b1375] in StubRoutines::checkcast_arraycopy_uninit 6.66% 6.42% [0x7f1d00c4e560:0x7f1d00c4e5e5] in org.openjdk.jmh.infra.Blackhole::consume 5.98% 4.16% [0x7f1cf91a3260:0x7f1d12fdc000] in sun.reflect.ClassFileAssembler::cpi 3.05% 4.15% [0x7f1d11d537d8:0x7f1d11d537fd] in _ZN22ParallelTaskTerminator17offer_terminationEP20TerminatorTerminator (libjvm.so) 2.52% 2.51% [0xffffffff8105b83a:0xffffffff8105b83d] in [unknown] ([unknown]) 0.13% 0.20% [0x7f1d11d00f28:0x7f1d11d00f65] in _ZN11StringTable17unlink_or_oops_doEP17BoolObjectClosureP10OopClosurePiS4_ (libjvm.so) 0.09% 0.04% [0xffffffff817b3c20:0xffffffff817b3c20] in [unknown] ([unknown]) 0.08% 0.08% [0xffffffff8109cf70:0xffffffff8109cf87] in [unknown] ([unknown]) 0.08% 0.04% [0xffffffff817b3d8a:0xffffffff817b3db0] in [unknown] ([unknown]) 0.06% 0.04% [0xffffffff810d303a:0xffffffff810d305c] in [unknown] ([unknown]) 0.06% 0.04% [0xffffffff817b5e50:0xffffffff817b5e89] in [unknown] ([unknown]) 0.06% 0.01% [0x7f1cf91a3260:0x7f1d12fdc000] in sun.reflect.ClassFileAssembler::cpi 0.05% 0.03% [0xffffffff817b57a0:0xffffffff817b57c4] in [unknown] ([unknown]) 0.04% 0.04% [0xffffffff81032aff:0xffffffff81032aff] in [unknown] ([unknown]) 0.04% 0.04% [0xffffffff81165460:0xffffffff81165460] in [unknown] ([unknown]) 0.04% 0.04% [0xffffffff81165482:0xffffffff81165482] in [unknown] ([unknown]) 0.04% 0.04% [0xffffffff81168de8:0xffffffff81168de8] in [unknown] ([unknown]) 0.04% 0.04% [0xffffffff8116a4fc:0xffffffff8116a4fc] in [unknown] ([unknown]) 2.57% 2.85% <...other 303 warm regions...> .................................................................................................... 99.97% 100.00% ....[Hottest Methods (after inlining)].............................................................. 43.98% 46.98% StubRoutines::checkcast_arraycopy_uninit 34.41% 32.28% org.openjdk.generated.ArrayZeroingBench_arraycopy_srcLength_jmhTest::arraycopy_srcLength_avgt_jmhStub 6.75% 5.02% sun.reflect.ClassFileAssembler::cpi 6.66% 6.42% org.openjdk.jmh.infra.Blackhole::consume 4.19% 4.07% [unknown] ([unknown]) 3.06% 4.16% _ZN22ParallelTaskTerminator17offer_terminationEP20TerminatorTerminator (libjvm.so) 0.16% 0.26% _ZN11StringTable17unlink_or_oops_doEP17BoolObjectClosureP10OopClosurePiS4_ (libjvm.so) 0.08% 0.05% _IO_default_xsputn (libc-2.19.so) 0.06% 0.06% _IO_fwrite (libc-2.19.so) 0.05% 0.03% _ZN9xmlStream10write_textEPKcm (libjvm.so) 0.05% 0.04% print_insn (libhsdis-amd64.so) 0.05% 0.09% vfprintf (libc-2.19.so) 0.05% 0.03% __strchr_sse2 (libc-2.19.so) 0.04% 0.03% [unknown] (libpthread-2.19.so) 0.04% 0.05% __pthread_enable_asynccancel (libpthread-2.19.so) 0.03% 0.03% OP_E_memory (libhsdis-amd64.so) 0.03% 0.03% _IO_vsnprintf (libc-2.19.so) 0.03% 0.01% _int_free (libc-2.19.so) 0.03% 0.01% pthread_mutex_unlock (libpthread-2.19.so) 0.03% 0.03% _IO_fflush (libc-2.19.so) 0.21% 0.03% <...other 16 warm methods...> .................................................................................................... 99.97% 99.68% ....[Distribution by Area].......................................................................... 91.82% 90.71% 4.19% 4.07% 3.33% 4.53% 0.39% 0.49% 0.13% 0.08% 0.13% 0.13% .................................................................................................... 99.97% 100.00% # Run complete. Total time: 00:00:26 Benchmark (size) Mode Cnt Score Error Units ArrayZeroingBench.arraycopy_dstLength 10 avgt 5 24.051 ± 2.545 ns/op ArrayZeroingBench.arraycopy_dstLength:·asm 10 avgt NaN --- ArrayZeroingBench.arraycopy_srcLength 10 avgt 5 14.543 ± 0.697 ns/op ArrayZeroingBench.arraycopy_srcLength:·asm 10 avgt NaN ---