# JMH 1.11.3 (released 40 days ago) # VM version: JDK 9-ea, VM 9-ea+104-2016-02-03-214959.javare.4385.nc # VM invoker: /home/shade/Install/jdk9b104/bin/java # VM options: -Djava.lang.invoke.stringConcat=MH_INLINE_SIZED_EXACT # 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.ConcatBench.string_string # Parameters: (size = 1) # 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: 40.046 ns/op # Warmup Iteration 2: 25.289 ns/op # Warmup Iteration 3: 23.818 ns/op # Warmup Iteration 4: 23.935 ns/op # Warmup Iteration 5: 23.732 ns/op Iteration 1: 24.239 ns/op Iteration 2: 23.692 ns/op Iteration 3: 23.613 ns/op Iteration 4: 23.539 ns/op Iteration 5: 23.807 ns/op # Processing profiler results: LinuxPerfAsmProfiler Result "string_string": 23.778 ±(99.9%) 1.063 ns/op [Average] (min, avg, max) = (23.539, 23.778, 24.239), stdev = 0.276 CI (99.9%): [22.715, 24.841] (assumes normal distribution) Secondary result "·asm": PrintAssembly processed: 214581 total address lines. Perf output processed (skipped 5.115 seconds): Column 1: cycles (8638 events) Column 2: instructions (8580 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. [0x7f23092373dc:0x7f2309237603] in org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) ; {runtime_call _new_array_Java} 0x00007f23092373dc: mov 0x10(%rsp),%r13 0x00007f23092373e1: mov 0x30(%rsp),%rbx 0x00007f23092373e6: mov 0x4(%rsp),%r9d 0x00007f23092373eb: mov 0x38(%rsp),%r8d 0x00007f23092373f0: mov 0x3c(%rsp),%ebp 0x00007f23092373f4: mov 0x40(%rsp),%edx 0x00007f23092373f8: mov %rax,%r14 ╭ 0x00007f23092373fb: jmpq 0x00007f2309237524 0.05% 0.08% │ ↗ 0x00007f2309237400: mov %r10,0x60(%r15) 0.98% 2.54% │ │ 0x00007f2309237404: prefetchnta 0xc0(%r10) 0.09% 0.14% │ │ 0x00007f230923740c: mov 0x20(%rsp),%r11 0.50% 1.57% │ │ 0x00007f2309237411: mov 0xa8(%r11),%r10 0.51% 0.84% │ │ 0x00007f2309237418: mov %r10,(%rax) 2.34% 3.86% │ │ 0x00007f230923741b: movl $0xf80002da,0x8(%rax) ; {metadata('java/lang/String')} 1.15% 1.98% │ │ 0x00007f2309237422: mov %r12d,0xc(%rax) 0.90% 0.92% │ │ 0x00007f2309237426: mov %r12,0x10(%rax) 0.02% │ │ 0x00007f230923742a: mov %r13,0x10(%rsp) 0.02% 0.03% │ │ 0x00007f230923742f: mov %rbx,%rbp │ │ 0x00007f2309237432: mov %r14,(%rsp) 1.34% 1.06% │ │ 0x00007f2309237436: mov %rax,%rdx ;*new {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.StringConcatHelper::newString@0 (line 342) │ │ ; - java.lang.invoke.LambdaForm$DMH/1355316001::invokeStatic_LI_L@11 │ │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@156 │ │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 0.01% │ │ 0x00007f2309237439: mov (%rsp),%r10 3.07% 6.67% │ │ 0x00007f230923743d: mov %r10,%r11 0.02% │ │ 0x00007f2309237440: shr $0x3,%r11 1.05% 0.99% │ │ 0x00007f2309237444: mov %r11d,0xc(%rdx) ;*synchronization entry │ │ ; - java.lang.StringConcatHelper::newString@-1 (line 342) │ │ ; - java.lang.invoke.LambdaForm$DMH/1355316001::invokeStatic_LI_L@11 │ │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@156 │ │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 0.89% 0.30% │ │ 0x00007f2309237448: mov 0x28(%rsp),%rsi 0.03% │ │ 0x00007f230923744d: xchg %ax,%ax │ │ 0x00007f230923744f: callq 0x00007f2301761660 ; ImmutableOopMap{[8]=Oop [16]=Oop [24]=Oop [40]=Oop } │ │ ;*invokevirtual consume {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@19 (line 199) │ │ ; {optimized virtual_call} 0.27% 0.47% │ │ 0x00007f2309237454: mov 0x18(%rsp),%r10 0.67% 0.34% │ │ 0x00007f2309237459: movzbl 0x94(%r10),%r11d ;*getfield isDone {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@29 (line 201) 0.35% 0.26% │ │ 0x00007f2309237461: mov %rbp,%rbx 0.14% 0.12% │ │ 0x00007f2309237464: add $0x1,%rbx ; ImmutableOopMap{[8]=Oop [16]=Oop [24]=Oop [40]=Oop } │ │ ;*ifeq {reexecute=1 rethrow=0 return_oop=0} │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@32 (line 201) 0.54% 1.48% │ │ 0x00007f2309237468: test %eax,0x126fdb92(%rip) # 0x00007f231b935000 │ │ ; {poll} │ │ 0x00007f230923746e: test %r11d,%r11d │ │ 0x00007f2309237471: jne 0x00007f2309237612 ;*aload {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@13 (line 199) 0.12% 0.03% │ │ 0x00007f2309237477: mov 0x10(%rsp),%r13 0.28% 0.03% │ │ 0x00007f230923747c: mov 0x1c(%r13),%r10d ;*getfield b {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.openjdk.ConcatBench::string_string@1 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 0.65% 0.59% │ │ 0x00007f2309237480: mov 0xc(%r12,%r10,8),%r9d ;*getfield value {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.String::length@1 (line 651) │ │ ; - java.lang.StringConcatHelper::mixLen@2 (line 116) │ │ ; - java.lang.invoke.LambdaForm$DMH/1159785389::invokeStatic_IL_I@11 │ │ ; - java.lang.invoke.LambdaForm$BMH/1335050193::reinvoke@17 │ │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@70 │ │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) │ │ ; implicit exception: dispatches to 0x00007f2309237895 0.69% 0.31% │ │ 0x00007f2309237485: mov 0xc(%r12,%r9,8),%r8d ;*arraylength {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.String::length@4 (line 651) │ │ ; - java.lang.StringConcatHelper::mixLen@2 (line 116) │ │ ; - java.lang.invoke.LambdaForm$DMH/1159785389::invokeStatic_IL_I@11 │ │ ; - java.lang.invoke.LambdaForm$BMH/1335050193::reinvoke@17 │ │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@70 │ │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) │ │ ; implicit exception: dispatches to 0x00007f23092378cd 4.78% 3.62% │ │ 0x00007f230923748a: movsbl 0x14(%r12,%r10,8),%ebp ;*getfield coder {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.String::coder@7 (line 3066) │ │ ; - java.lang.StringConcatHelper::mixCoder@2 (line 136) │ │ ; - java.lang.invoke.LambdaForm$DMH/1159785389::invokeStatic_IL_I@11 │ │ ; - java.lang.invoke.LambdaForm$BMH/221036634::reinvoke@16 │ │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@47 │ │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 0.01% │ │ 0x00007f2309237490: mov %r8d,%r11d │ │ 0x00007f2309237493: mov %ebp,%ecx 0.01% │ │ 0x00007f2309237495: sar %cl,%r11d 2.93% 1.35% │ │ 0x00007f2309237498: add $0x5,%r11d ;*iadd {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.StringConcatHelper::mixLen@5 (line 116) │ │ ; - java.lang.invoke.LambdaForm$DMH/1159785389::invokeStatic_IL_I@11 │ │ ; - java.lang.invoke.LambdaForm$BMH/1335050193::reinvoke@17 │ │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@70 │ │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 0.01% │ │ 0x00007f230923749c: test %r11d,%r11d │ │ 0x00007f230923749f: jl 0x00007f23092376c5 ;*ifge {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.StringConcatHelper::checkOverflow@1 (line 43) │ │ ; - java.lang.StringConcatHelper::mixLen@6 (line 116) │ │ ; - java.lang.invoke.LambdaForm$DMH/1159785389::invokeStatic_IL_I@11 │ │ ; - java.lang.invoke.LambdaForm$BMH/1335050193::reinvoke@17 │ │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@70 │ │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 1.10% 0.94% │ │ 0x00007f23092374a5: mov %r11d,%edx 0.02% │ │ 0x00007f23092374a8: shl %cl,%edx ;*ishl {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.invoke.StringConcatFactory$MethodHandleInlineCopyStrategy::newArray@2 (line 1567) │ │ ; - java.lang.invoke.LambdaForm$DMH/1597462040::invokeStatic_II_L@11 │ │ ; - java.lang.invoke.LambdaForm$BMH/1659791576::reinvoke@16 │ │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@91 │ │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 2.44% 4.15% │ │ 0x00007f23092374aa: cmp $0x100000,%edx │ │ 0x00007f23092374b0: ja 0x00007f23092373ac 0.01% │ │ 0x00007f23092374b6: mov 0x60(%r15),%r14 │ │ 0x00007f23092374ba: movslq %edx,%rcx │ │ 0x00007f23092374bd: add $0x17,%rcx 0.65% 2.16% │ │ 0x00007f23092374c1: mov %rcx,%rdi │ │ 0x00007f23092374c4: and $0xfffffffffffffff8,%rdi │ │ 0x00007f23092374c8: mov %r14,%rsi 0.01% │ │ 0x00007f23092374cb: add %rdi,%rsi 1.02% 2.70% │ │ 0x00007f23092374ce: cmp 0x70(%r15),%rsi │ │ 0x00007f23092374d2: jae 0x00007f23092373ac 0.35% 1.20% │ │ 0x00007f23092374d8: mov %rsi,0x60(%r15) 0.01% │ │ 0x00007f23092374dc: prefetchnta 0xc0(%rsi) 3.80% 6.33% │ │ 0x00007f23092374e3: movq $0x1,(%r14) 0.01% 0.01% │ │ 0x00007f23092374ea: prefetchnta 0x100(%rsi) 0.02% 0.01% │ │ 0x00007f23092374f1: movl $0xf80000f5,0x8(%r14) ; {metadata({type array byte})} │ │ 0x00007f23092374f9: mov %edx,0xc(%r14) 0.93% 0.20% │ │ 0x00007f23092374fd: prefetchnta 0x140(%rsi) 0.01% │ │ 0x00007f2309237504: prefetchnta 0x180(%rsi) 0.02% 0.01% │ │ 0x00007f230923750b: shr $0x3,%rcx │ │ 0x00007f230923750f: add $0xfffffffffffffffe,%rcx 1.08% 0.20% │ │ 0x00007f2309237513: mov %r14,%rdi 0.01% │ │ 0x00007f2309237516: add $0x10,%rdi │ │ 0x00007f230923751a: xor %rax,%rax │ │ 0x00007f230923751d: shl $0x3,%rcx 0.78% 0.05% │ │ 0x00007f2309237521: rep rex.W stos %al,%es:(%rdi) ;*newarray {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.invoke.StringConcatFactory$MethodHandleInlineCopyStrategy::newArray@3 (line 1567) │ │ ; - java.lang.invoke.LambdaForm$DMH/1597462040::invokeStatic_II_L@11 │ │ ; - java.lang.invoke.LambdaForm$BMH/1659791576::reinvoke@16 │ │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@91 │ │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 17.71% 19.76% ↘ │ 0x00007f2309237524: mov $0x5,%r10d 0.09% 0.06% │ 0x00007f230923752a: mov %ebp,%ecx 0.01% 0.03% │ 0x00007f230923752c: shl %cl,%r10d ;*ishl {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.String::getBytes@16 (line 3000) │ ; - java.lang.StringConcatHelper::prepend@11 (line 330) │ ; - java.lang.invoke.LambdaForm$DMH/1824835605::invokeStatic_ILIL_I@16 │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@114 │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 2.33% 0.01% │ 0x00007f230923752f: test %r10d,%r10d │ 0x00007f2309237532: jl 0x00007f230923763c 0.66% │ 0x00007f2309237538: mov %r10d,%ecx │ 0x00007f230923753b: add %r8d,%ecx │ 0x00007f230923753e: cmp %ecx,%edx 0.39% │ 0x00007f2309237540: jb 0x00007f230923763c ;*invokestatic arraycopy {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.String::getBytes@22 (line 3000) │ ; - java.lang.StringConcatHelper::prepend@11 (line 330) │ ; - java.lang.invoke.LambdaForm$DMH/1824835605::invokeStatic_ILIL_I@16 │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@114 │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 0.81% │ 0x00007f2309237546: test %r8d,%r8d ╭│ 0x00007f2309237549: jle 0x00007f230923756f 0.02% ││ 0x00007f230923754b: mov %edx,(%rsp) 3.67% ││ 0x00007f230923754e: lea 0x10(%r14,%r10,1),%rsi 0.01% ││ 0x00007f2309237553: movslq %r8d,%rdx ││ 0x00007f2309237556: lea (%r12,%r9,8),%r10 ;*getfield value {reexecute=0 rethrow=0 return_oop=0} ││ ; - java.lang.String::length@1 (line 651) ││ ; - java.lang.StringConcatHelper::mixLen@2 (line 116) ││ ; - java.lang.invoke.LambdaForm$DMH/1159785389::invokeStatic_IL_I@11 ││ ; - java.lang.invoke.LambdaForm$BMH/1335050193::reinvoke@17 ││ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@70 ││ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 ││ ; - org.openjdk.ConcatBench::string_string@4 (line 67) ││ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) ││ 0x00007f230923755a: lea 0x10(%r12,%r9,8),%rdi 0.96% ││ 0x00007f230923755f: movabs $0x7f230176eba0,%r10 0.01% ││ 0x00007f2309237569: callq *%r10 0.83% 1.76% ││ 0x00007f230923756c: mov (%rsp),%edx ;*invokestatic arraycopy {reexecute=0 rethrow=0 return_oop=0} ││ ; - java.lang.String::getBytes@22 (line 3000) ││ ; - java.lang.StringConcatHelper::prepend@11 (line 330) ││ ; - java.lang.invoke.LambdaForm$DMH/1824835605::invokeStatic_ILIL_I@16 ││ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@114 ││ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 ││ ; - org.openjdk.ConcatBench::string_string@4 (line 67) ││ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 0.01% 0.01% ↘│ 0x00007f230923756f: test %ebp,%ebp │ 0x00007f2309237571: jne 0x00007f230923769d ;*if_icmpne {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.String::getBytes@5 (line 2999) │ ; - java.lang.StringConcatHelper::prepend@11 (line 330) │ ; - java.lang.invoke.LambdaForm$DMH/1824835605::invokeStatic_ILIL_I@16 │ ; - java.lang.invoke.LambdaForm$BMH/1828757853::reinvoke@27 │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@136 │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) │ 0x00007f2309237577: cmp $0x5,%edx │ 0x00007f230923757a: jb 0x00007f2309237675 0.78% 0.03% │ 0x00007f2309237580: movabs $0x5d6a06d18,%r10 ; {oop([B)} │ 0x00007f230923758a: movsbl 0x10(%r10),%r10d 0.03% 0.01% │ 0x00007f230923758f: mov %r10b,0x10(%r14) 0.43% 0.02% │ 0x00007f2309237593: mov 0x60(%r15),%rax 0.57% 0.06% │ 0x00007f2309237597: movabs $0x5d6a06d18,%r10 ; {oop([B)} │ 0x00007f23092375a1: movsbl 0x11(%r10),%r11d 0.03% │ 0x00007f23092375a6: mov %r11b,0x11(%r14) 2.26% 1.97% │ 0x00007f23092375aa: mov %rax,%r10 0.03% │ 0x00007f23092375ad: add $0x18,%r10 │ 0x00007f23092375b1: movabs $0x5d6a06d18,%r11 ; {oop([B)} 0.02% │ 0x00007f23092375bb: movsbl 0x12(%r11),%r8d 1.04% 1.86% │ 0x00007f23092375c0: mov %r8b,0x12(%r14) 0.47% 0.82% │ 0x00007f23092375c4: movsbl 0x13(%r11),%r11d │ 0x00007f23092375c9: mov %r11b,0x13(%r14) 0.39% 0.27% │ 0x00007f23092375cd: movabs $0x5d6a06d18,%r11 ; {oop([B)} 0.50% 1.18% │ 0x00007f23092375d7: movsbl 0x14(%r11),%r8d 0.01% 0.03% │ 0x00007f23092375dc: mov %r8b,0x14(%r14) ;*invokestatic arraycopy {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.String::getBytes@22 (line 3000) │ ; - java.lang.StringConcatHelper::prepend@11 (line 330) │ ; - java.lang.invoke.LambdaForm$DMH/1824835605::invokeStatic_ILIL_I@16 │ ; - java.lang.invoke.LambdaForm$BMH/1828757853::reinvoke@27 │ ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@136 │ ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 │ ; - org.openjdk.ConcatBench::string_string@4 (line 67) │ ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 1.39% 2.59% │ 0x00007f23092375e0: cmp 0x70(%r15),%r10 ╰ 0x00007f23092375e4: jb 0x00007f2309237400 0x00007f23092375ea: mov %r14,(%rsp) 0.01% 0x00007f23092375ee: mov %rbx,%rbp 0x00007f23092375f1: mov %r13,0x10(%rsp) ;*synchronization entry ; - java.lang.StringConcatHelper::newString@-1 (line 342) ; - java.lang.invoke.LambdaForm$DMH/1355316001::invokeStatic_LI_L@11 ; - java.lang.invoke.LambdaForm$BMH/581572417::reinvoke@156 ; - java.lang.invoke.LambdaForm$MH/157627094::linkToTargetMethod@5 ; - org.openjdk.ConcatBench::string_string@4 (line 67) ; - org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub@16 (line 199) 0x00007f23092375f6: movabs $0x7c00016d0,%rsi ; {metadata('java/lang/String')} 0x00007f2309237600: data16 xchg %ax,%ax 0x00007f2309237603: callq 0x00007f230178e260 ; ImmutableOopMap{[0]=Oop [8]=Oop [16]=Oop [24]=Oop [40]=Oop } .................................................................................................... 72.03% 78.23% ....[Hottest Region 2].............................................................................. [0x7f230176eaad:0x7f230176ebde] in StubRoutines::jbyte_disjoint_arraycopy; StubRoutines::jbyte_arraycopy 0x00007f230176eaad: mov 0x50(%rsp),%rbp 0x00007f230176eab2: mov 0x60(%rsp),%rbx 0x00007f230176eab7: mov 0x68(%rsp),%rdx 0x00007f230176eabc: mov 0x70(%rsp),%rcx 0x00007f230176eac1: mov 0x78(%rsp),%rax 0x00007f230176eac6: add $0x80,%rsp 0x00007f230176eacd: retq $0x20 StubRoutines::jbyte_disjoint_arraycopy [0x00007f230176eae0, 0x00007f230176eb9b[ (187 bytes) 0x00007f230176eae0: push %rbp 0x00007f230176eae1: mov %rsp,%rbp 0.02% ↗↗ 0x00007f230176eae4: mov %rdx,%rcx ││ 0x00007f230176eae7: shr $0x3,%rdx 0.95% ││ 0x00007f230176eaeb: lea -0x8(%rdi,%rdx,8),%rdi 0.01% ││ 0x00007f230176eaf0: lea -0x8(%rsi,%rdx,8),%rsi 0.01% ││ 0x00007f230176eaf5: neg %rdx ╭ ││ 0x00007f230176eaf8: jmpq Stub::jbyte_disjoint_arraycopy+136 0x00007f230176eb68 │↗ ↗ ││ 0x00007f230176eafd: mov 0x8(%rdi,%rdx,8),%rax ││ │ ││ 0x00007f230176eb02: mov %rax,0x8(%rsi,%rdx,8) ││ │ ││ 0x00007f230176eb07: inc %rdx │╰ │ ││ 0x00007f230176eb0a: jne Stub::jbyte_disjoint_arraycopy+29 0x00007f230176eafd 0.91% │ │↗││ 0x00007f230176eb0c: test $0x4,%ecx │ ╭ ││││ 0x00007f230176eb12: je Stub::jbyte_disjoint_arraycopy+66 0x00007f230176eb22 │ │ ││││ 0x00007f230176eb14: mov 0x8(%rdi),%eax │ │ ││││ 0x00007f230176eb17: mov %eax,0x8(%rsi) │ │ ││││ 0x00007f230176eb1a: add $0x4,%rdi │ │ ││││ 0x00007f230176eb1e: add $0x4,%rsi 0.97% 0.80% │ ↘ ││││ 0x00007f230176eb22: test $0x2,%ecx │ ╭ ││││ 0x00007f230176eb28: je Stub::jbyte_disjoint_arraycopy+90 0x00007f230176eb3a │ │ ││││ 0x00007f230176eb2a: mov 0x8(%rdi),%ax │ │ ││││ 0x00007f230176eb2e: mov %ax,0x8(%rsi) │ │ ││││ 0x00007f230176eb32: add $0x2,%rdi │ │ ││││ 0x00007f230176eb36: add $0x2,%rsi 1.10% 0.98% │ ↘ ││││ 0x00007f230176eb3a: test $0x1,%ecx │ ╭ ││││ 0x00007f230176eb40: je Stub::jbyte_disjoint_arraycopy+104 0x00007f230176eb48 │ │ ││││ 0x00007f230176eb42: mov 0x8(%rdi),%al 1.04% 0.03% │ │ ││││ 0x00007f230176eb45: mov %al,0x8(%rsi) 1.09% 1.47% │ ↘ ││││ 0x00007f230176eb48: xor %rax,%rax │ ││││ 0x00007f230176eb4b: leaveq 0.91% 2.09% │ ││││ 0x00007f230176eb4c: retq │ ││││ 0x00007f230176eb4d: data16 xchg %ax,%ax │ ↗ ││││ 0x00007f230176eb50: vmovdqu -0x38(%rdi,%rdx,8),%ymm0 │ │ ││││ 0x00007f230176eb56: vmovdqu %ymm0,-0x38(%rsi,%rdx,8) │ │ ││││ 0x00007f230176eb5c: vmovdqu -0x18(%rdi,%rdx,8),%ymm1 │ │ ││││ 0x00007f230176eb62: vmovdqu %ymm1,-0x18(%rsi,%rdx,8) 1.03% 0.01% ↘ │ ││││ 0x00007f230176eb68: add $0x8,%rdx ╰ ││││ 0x00007f230176eb6c: jle Stub::jbyte_disjoint_arraycopy+112 0x00007f230176eb50 ││││ 0x00007f230176eb6e: sub $0x4,%rdx ╭││││ 0x00007f230176eb72: jg Stub::jbyte_disjoint_arraycopy+164 0x00007f230176eb84 │││││ 0x00007f230176eb74: vmovdqu -0x18(%rdi,%rdx,8),%ymm0 │││││ 0x00007f230176eb7a: vmovdqu %ymm0,-0x18(%rsi,%rdx,8) │││││ 0x00007f230176eb80: add $0x4,%rdx 1.01% 0.06% ↘││││ 0x00007f230176eb84: vpxor %ymm0,%ymm0,%ymm0 ││││ 0x00007f230176eb88: vpxor %ymm1,%ymm1,%ymm1 ││││ 0x00007f230176eb8c: sub $0x4,%rdx ╰│││ 0x00007f230176eb90: jl Stub::jbyte_disjoint_arraycopy+29 0x00007f230176eafd ╰││ 0x00007f230176eb96: jmpq Stub::jbyte_disjoint_arraycopy+44 0x00007f230176eb0c ││ StubRoutines::jbyte_arraycopy [0x00007f230176eba0, 0x00007f230176ec63[ (195 bytes) 0.76% ││ 0x00007f230176eba0: push %rbp 0.95% 0.01% ││ 0x00007f230176eba1: mov %rsp,%rbp 0.02% ││ 0x00007f230176eba4: cmp %rdi,%rsi ││ 0x00007f230176eba7: lea (%rdi,%rdx,1),%rax 0.75% 0.01% ╰│ 0x00007f230176ebab: jbe Stub::jbyte_disjoint_arraycopy+4 0x00007f230176eae4 0.02% │ 0x00007f230176ebb1: cmp %rax,%rsi ╰ 0x00007f230176ebb4: jae Stub::jbyte_disjoint_arraycopy+4 0x00007f230176eae4 0x00007f230176ebba: mov %rdx,%rcx 0x00007f230176ebbd: shr $0x3,%rdx 0x00007f230176ebc1: test $0x1,%ecx ╭ 0x00007f230176ebc7: je Stub::jbyte_arraycopy+56 0x00007f230176ebd8 │ 0x00007f230176ebcd: mov -0x1(%rdi,%rcx,1),%al │ 0x00007f230176ebd1: mov %al,-0x1(%rsi,%rcx,1) │ 0x00007f230176ebd5: dec %rcx ↘ 0x00007f230176ebd8: test $0x2,%ecx 0x00007f230176ebde: je Stub::jbyte_arraycopy+78 0x00007f230176ebee .................................................................................................... 11.58% 5.47% ....[Hottest Regions]............................................................................... 72.03% 78.23% [0x7f23092373dc:0x7f2309237603] in org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub 11.58% 5.47% [0x7f230176eaad:0x7f230176ebde] in StubRoutines::jbyte_disjoint_arraycopy; StubRoutines::jbyte_arraycopy 4.01% 5.14% [0x7f2309233d60:0x7f2309233dea] in org.openjdk.jmh.infra.Blackhole::consume 3.51% 2.28% [0x5:0x7f231acc97c7] in sun.reflect.ClassFileAssembler::cpi 2.84% 2.82% [0xffffffff8105b83a:0xffffffff8105b83a] in [unknown] ([unknown]) 2.14% 2.87% [0x7f231a691f02:0x7f231a691f11] in _ZN22ParallelTaskTerminator17offer_terminationEP20TerminatorTerminator (libjvm.so) 0.27% 0.15% [0x7f231a63cbe0:0x7f231a63cc1d] in _ZN11StringTable25possibly_parallel_oops_doEP10OopClosure (libjvm.so) 0.23% [0xffffffff813b2957:0xffffffff813b2959] in [unknown] ([unknown]) 0.16% 0.06% [0x7f231ada4665:0x7f231ada467b] in memset (libc-2.19.so) 0.13% [0xffffffff817b3c20:0xffffffff817b3c23] in [unknown] ([unknown]) 0.08% 0.16% [0x5:0x7f231acc97c7] in sun.reflect.ClassFileAssembler::cpi 0.07% 0.07% [0xffffffff817b5a00:0xffffffff817b5a13] in [unknown] ([unknown]) 0.06% 0.07% [0xffffffff81032b2c:0xffffffff81032b2d] in [unknown] ([unknown]) 0.06% 0.03% [0xffffffff810d3027:0xffffffff810d305c] in [unknown] ([unknown]) 0.06% 0.01% [0xffffffff817b5e50:0xffffffff817b5e6d] in [unknown] ([unknown]) 0.06% [0x5:0x7f231acc97c7] in sun.reflect.ClassFileAssembler::cpi 0.05% 0.02% [0x5:0x7f231acc97c7] in sun.reflect.ClassFileAssembler::cpi 0.03% 0.02% [0xffffffff810f06c5:0xffffffff810f06c5] in [unknown] ([unknown]) 0.03% 0.03% [0xffffffff81165460:0xffffffff81165460] in [unknown] ([unknown]) 0.03% 0.06% [0xffffffff81209271:0xffffffff812092a2] in [unknown] ([unknown]) 2.57% 2.48% <...other 326 warm regions...> .................................................................................................... 99.99% 99.99% ....[Hottest Methods (after inlining)].............................................................. 72.03% 78.23% org.openjdk.generated.ConcatBench_string_string_jmhTest::string_string_avgt_jmhStub 11.58% 5.47% StubRoutines::jbyte_disjoint_arraycopy; StubRoutines::jbyte_arraycopy 4.57% 3.93% [unknown] ([unknown]) 4.56% 3.52% sun.reflect.ClassFileAssembler::cpi 4.01% 5.14% org.openjdk.jmh.infra.Blackhole::consume 2.14% 2.90% _ZN22ParallelTaskTerminator17offer_terminationEP20TerminatorTerminator (libjvm.so) 0.29% 0.16% _ZN11StringTable25possibly_parallel_oops_doEP10OopClosure (libjvm.so) 0.19% 0.07% memset (libc-2.19.so) 0.07% 0.08% 0.07% 0.07% vfprintf (libc-2.19.so) 0.03% __pthread_disable_asynccancel (libpthread-2.19.so) 0.03% 0.02% _ZN15RSHashTableIter8has_nextERm (libjvm.so) 0.03% _IO_default_xsputn (libc-2.19.so) 0.02% 0.06% _IO_fwrite (libc-2.19.so) 0.02% syscall (libc-2.19.so) 0.02% 0.02% _ZN9xmlStream10write_textEPKcm (libjvm.so) 0.01% 0.03% [unknown] (libpthread-2.19.so) 0.01% 0.01% _ZN14NMethodSweeper6notifyEi (libjvm.so) 0.01% 0.27% 0.09% <...other 23 warm methods...> .................................................................................................... 99.99% 99.80% ....[Distribution by Area].......................................................................... 92.30% 92.47% 4.57% 3.93% 2.58% 3.18% 0.45% 0.30% 0.07% 0.07% 0.01% 0.02% .................................................................................................... 99.99% 99.99% # Run complete. Total time: 00:00:14 Benchmark (size) Mode Cnt Score Error Units ConcatBench.string_string 1 avgt 5 23.778 ± 1.063 ns/op ConcatBench.string_string:·asm 1 avgt NaN ---