# VM invoker: /home/shade/trunks/jdk9-dev/build/jdk9-lf-caching/jre/bin/java # VM options: # Warmup: 3 iterations, 1 s each # Measurement: 3 iterations, 5 s each # Threads: 1 thread, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: org.sample.ConstructorBenchmark.create_handle # Run progress: 0.00% complete, ETA 00:00:18 # Fork: 1 of 1 # Preparing profilers: perfasm # Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console # Warmup Iteration 1: 20.894 ops/us # Warmup Iteration 2: 22.551 ops/us # Warmup Iteration 3: 25.261 ops/us Iteration 1: 25.269 ops/us Iteration 2: 25.151 ops/us Iteration 3: 25.204 ops/us # Processing profiler results: perfasm Result: 25.208 ±(99.9%) 1.080 ops/us [Average] Statistics: (min, avg, max) = (25.151, 25.208, 25.269), stdev = 0.059 Confidence interval (99.9%): [24.128, 26.288] PrintAssembly processed: 67630 total address lines. Perf output processed (skipped 4.000 seconds): Column 1: cycles (16489 events) Column 2: instructions (16638 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. [0x7fcc74525780:0x7fcc74525857] in Decoding compiled method 0x00007fcc74525610: Code: [Entry Point] [Verified Entry Point] [Constants] # {method} {0x00007fcc7278b608} 'newInvokeSpecial__L' '(Ljava/lang/Object;)Ljava/lang/Object;' in 'java/lang/invoke/LambdaForm$DMH' # parm0: rsi:rsi = 'java/lang/Object' # [sp+0x30] (sp of caller) 4.86% 7.60% 0x00007fcc74525780: mov %eax,-0x14000(%rsp) 0x00007fcc74525787: push %rbp 0.01% 0x00007fcc74525788: sub $0x20,%rsp ;*synchronization entry ; - java.lang.invoke.LambdaForm$DMH/111025805::newInvokeSpecial__L@-1 1.35% 4.11% 0x00007fcc7452578c: mov %rsi,%rbx 0x00007fcc7452578f: mov 0x8(%rsi),%r11d ; implicit exception: dispatches to 0x00007fcc7452588d 0x00007fcc74525793: cmp $0xf80144ca,%r11d ; {metadata('java/lang/invoke/DirectMethodHandle$Constructor')} 0x00007fcc7452579a: jne 0x00007fcc74525879 1.32% 4.69% 0x00007fcc745257a0: mov %rsi,%r10 ;*checkcast ; - java.lang.invoke.DirectMethodHandle::allocateInstance@1 (line 403) ; - java.lang.invoke.LambdaForm$DMH/111025805::newInvokeSpecial__L@1 0x00007fcc745257a3: mov %r10,(%rsp) 0x00007fcc745257a7: mov 0x20(%r10),%ebp ;*getfield instanceClass ; - java.lang.invoke.DirectMethodHandle::allocateInstance@9 (line 404) ; - java.lang.invoke.LambdaForm$DMH/111025805::newInvokeSpecial__L@1 0.01% 0x00007fcc745257ab: mov 0x48(%r12,%rbp,8),%rsi ; implicit exception: dispatches to 0x00007fcc745258a1 1.27% 4.55% 0x00007fcc745257b0: test %rsi,%rsi 0x00007fcc745257b3: je 0x00007fcc74525865 0x00007fcc745257b9: mov %rsi,%r10 0x00007fcc745257bc: movzbl 0x162(%r10),%r11d 0.01% 0.01% 0x00007fcc745257c4: mov 0x8(%r10),%r9d 1.32% 2.88% 0x00007fcc745257c8: add $0xfffffffffffffffc,%r11d 0.01% 0x00007fcc745257cc: mov %r9d,%ecx 0x00007fcc745257cf: and $0x1,%ecx 0.01% 0.01% 0x00007fcc745257d2: or %ecx,%r11d 1.27% 3.31% 0x00007fcc745257d5: test %r11d,%r11d 0x00007fcc745257d8: jne 0x00007fcc74525857 0x00007fcc745257da: movslq %r9d,%rcx 0x00007fcc745257dd: mov %rcx,%r11 0x00007fcc745257e0: and $0xfffffffffffffff8,%r11 1.15% 1.03% 0x00007fcc745257e4: mov 0x60(%r15),%rbp 0.01% 0x00007fcc745257e8: mov %rbp,%r8 0x00007fcc745257eb: add %r11,%r8 0.01% 0x00007fcc745257ee: cmp 0x70(%r15),%r8 0x00007fcc745257f2: jae 0x00007fcc74525857 1.30% 0.02% 0x00007fcc745257f4: mov %r8,0x60(%r15) 0x00007fcc745257f8: prefetchnta 0xc0(%r8) 0.30% 0.14% 0x00007fcc74525800: mov %rbp,%rdi 0x00007fcc74525803: add $0x10,%rdi 1.19% 0.01% 0x00007fcc74525807: mov 0xa8(%r10),%r11 0x00007fcc7452580e: mov %r11,0x0(%rbp) 0.01% 0.02% 0x00007fcc74525812: mov %r10,%r11 0x00007fcc74525815: shr $0x3,%r11 1.23% 0.02% 0x00007fcc74525819: mov %r11d,0x8(%rbp) 0.01% 0.01% 0x00007fcc7452581d: mov %r12d,0xc(%rbp) 0.05% 0.01% 0x00007fcc74525821: shr $0x3,%rcx 0x00007fcc74525825: add $0xfffffffffffffffe,%rcx 1.29% 0.01% 0x00007fcc74525829: xor %rax,%rax 0x00007fcc7452582c: rep stos %rax,%es:(%rdi) ;*invokestatic constructorMethod ; - java.lang.invoke.LambdaForm$DMH/111025805::newInvokeSpecial__L@6 18.32% 40.62% 0x00007fcc7452582f: mov (%rsp),%r10 6.28% 4.30% 0x00007fcc74525833: mov 0x1c(%r10),%r11d 4.93% 0.05% 0x00007fcc74525837: mov %r11,%rdx 1.20% 0x00007fcc7452583a: shl $0x3,%rdx ;*getfield initMethod ; - java.lang.invoke.DirectMethodHandle::constructorMethod@6 (line 399) ; - java.lang.invoke.LambdaForm$DMH/111025805::newInvokeSpecial__L@6 1.29% 0x00007fcc7452583e: mov %rbp,%rsi 0.01% 0.01% 0x00007fcc74525841: xchg %ax,%ax 0.01% 0x00007fcc74525843: callq 0x00007fcc743c33e0 ; OopMap{rbp=Oop off=200} ;*invokestatic linkToSpecial ; - java.lang.invoke.LambdaForm$DMH/111025805::newInvokeSpecial__L@15 ; {static_call} 0x00007fcc74525848: mov %rbp,%rax 1.35% 0.01% 0x00007fcc7452584b: add $0x20,%rsp 0.01% 0x00007fcc7452584f: pop %rbp 0x00007fcc74525850: test %eax,0x15ed17aa(%rip) # 0x00007fcc8a3f7000 ; {poll_return} 6.13% 6.46% 0x00007fcc74525856: retq 0.01% 0x00007fcc74525857: mov %rbx,%rbp 0x00007fcc7452585a: nop 0x00007fcc7452585b: callq 0x00007fcc7447d160 ; OopMap{rbp=Oop [0]=Oop off=224} ;*invokevirtual allocateInstance ; - java.lang.invoke.DirectMethodHandle::allocateInstance@12 (line 404) ; - java.lang.invoke.LambdaForm$DMH/111025805::newInvokeSpecial__L@1 ; {runtime_call} 0x00007fcc74525860: mov %rax,%rbp 0x00007fcc74525863: jmp 0x00007fcc7452582f 0x00007fcc74525865: mov $0xfffffff4,%esi 0x00007fcc7452586a: mov %rbx,(%rsp) .................................................................................................... 57.47% 79.88% ....[Hottest Region 2].............................................................................. [0x7fcc7453ccd6:0x7fcc7453cd56] in org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub 0x00007fcc7453ccb5: mov %r12b,(%r11,%r10,1) 0x00007fcc7453ccb9: lock addl $0x0,(%rsp) ;*putfield obj1 ; - org.openjdk.jmh.infra.Blackhole::consume@27 (line 277) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@19 (line 104) 0x00007fcc7453ccbe: mov 0xc4(%r8),%r10d 0x00007fcc7453ccc5: shl %r10d 0x00007fcc7453ccc8: inc %r10d 0x00007fcc7453cccb: mov %r10d,0xc4(%r8) ;*invokevirtual consume ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@19 (line 104) 0x00007fcc7453ccd2: mov (%rsp),%rcx 0.01% 0x00007fcc7453ccd6: movzbl 0x94(%rcx),%r9d ;*getfield isDone ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@29 (line 106) 1.30% 3.75% 0x00007fcc7453ccde: mov 0x20(%rsp),%rbx 0.01% 0x00007fcc7453cce3: add $0x1,%rbx ; OopMap{r8=Oop rcx=Oop [8]=Oop [16]=Oop off=327} ;*ifeq ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@32 (line 106) 0x00007fcc7453cce7: test %eax,0x15eba313(%rip) # 0x00007fcc8a3f7000 ; {poll} 0x00007fcc7453cced: test %r9d,%r9d 0.01% 0.01% 0x00007fcc7453ccf0: jne 0x00007fcc7453cc6c ;*aload ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@13 (line 104) 1.22% 2.93% 0x00007fcc7453ccf6: mov 0x10(%rsp),%r10 0.01% 0x00007fcc7453ccfb: mov 0x10(%r10),%r11d ;*getfield constructorHandle ; - org.sample.ConstructorBenchmark::create_handle@1 (line 54) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@16 (line 104) 0x00007fcc7453ccff: mov 0xc(%r12,%r11,8),%r10d ;*getfield type ; - java.lang.invoke.MethodHandle::type@1 (line 444) ; - java.lang.invoke.Invokers::checkExactType@11 (line 303) ; - java.lang.invoke.LambdaForm$MH/102955408::invokeExact_MT@2 ; - org.sample.ConstructorBenchmark::create_handle@4 (line 54) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@16 (line 104) ; implicit exception: dispatches to 0x00007fcc7453cdfd 0.01% 0.01% 0x00007fcc7453cd04: cmp $0xeeb01234,%r10d ; {oop(a 'java/lang/invoke/MethodType' = ()Lorg/sample/ConstructorBenchmark$SimpleObject;)} 0x00007fcc7453cd0b: jne 0x00007fcc7453cd5b ;*if_acmpeq ; - java.lang.invoke.Invokers::checkExactType@19 (line 304) ; - java.lang.invoke.LambdaForm$MH/102955408::invokeExact_MT@2 ; - org.sample.ConstructorBenchmark::create_handle@4 (line 54) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@16 (line 104) 1.13% 0.03% 0x00007fcc7453cd0d: mov %rbx,0x20(%rsp) 0.02% 0x00007fcc7453cd12: mov %r8,0x18(%rsp) 0x00007fcc7453cd17: mov %rcx,(%rsp) 0x00007fcc7453cd1b: lea (%r12,%r11,8),%rsi ;*getfield constructorHandle ; - org.sample.ConstructorBenchmark::create_handle@1 (line 54) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@16 (line 104) 1.27% 0.03% 0x00007fcc7453cd1f: nop 0.01% 0x00007fcc7453cd20: mov %rsp,%rbp 0x00007fcc7453cd23: callq 0x00007fcc743c2fe0 ; OopMap{[0]=Oop [8]=Oop [16]=Oop [24]=Oop off=392} ;*invokevirtual invokeBasic ; - java.lang.invoke.LambdaForm$MH/102955408::invokeExact_MT@11 ; - org.sample.ConstructorBenchmark::create_handle@4 (line 54) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@16 (line 104) ; {optimized virtual_call} 0.01% 0x00007fcc7453cd28: mov %rbp,%rsp ;*invokevirtual invokeBasic ; - java.lang.invoke.LambdaForm$MH/102955408::invokeExact_MT@11 ; - org.sample.ConstructorBenchmark::create_handle@4 (line 54) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@16 (line 104) 0x00007fcc7453cd2b: mov 0x18(%rsp),%r8 1.33% 0.06% 0x00007fcc7453cd30: imul $0x19660d,0xc0(%r8),%r10d 7.86% 3.11% 0x00007fcc7453cd3b: add $0x3c6ef35f,%r10d ;*iadd ; - org.openjdk.jmh.infra.Blackhole::consume@10 (line 274) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@19 (line 104) 1.23% 0.02% 0x00007fcc7453cd42: mov %r10d,0xc0(%r8) ;*putfield tlr ; - org.openjdk.jmh.infra.Blackhole::consume@12 (line 274) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@19 (line 104) 1.33% 2.91% 0x00007fcc7453cd49: test %r10d,0xc4(%r8) 0x00007fcc7453cd50: je 0x00007fcc7453cc96 ;*ifne ; - org.openjdk.jmh.infra.Blackhole::consume@22 (line 275) ; - org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub@19 (line 104) 0.02% 0x00007fcc7453cd56: jmpq 0x00007fcc7453ccd2 0x00007fcc7453cd5b: mov $0xffffff5d,%esi 0x00007fcc7453cd60: mov %rcx,%rbp 0x00007fcc7453cd63: rex.W pushq 0x8(%rsp) 0x00007fcc7453cd68: rex.W popq (%rsp) 0x00007fcc7453cd6c: rex.W pushq 0x10(%rsp) 0x00007fcc7453cd71: rex.W popq 0x8(%rsp) 0x00007fcc7453cd76: mov %rbx,0x18(%rsp) 0x00007fcc7453cd7b: mov %r8,0x20(%rsp) .................................................................................................... 16.73% 12.89% ....[Hottest Region 3].............................................................................. [0x7fcc74498c40:0x7fcc74498c5b] in java.lang.String::length 233 54 3 java.lang.Class::getName (21 bytes) [Loaded java.lang.invoke.LambdaForm$DMH/491044090 from java.lang.invoke.LambdaForm] Decoding compiled method 0x00007fcc74498b10: Code: [Entry Point] [Verified Entry Point] # {method} {0x00007fcc72517a88} 'invokeBasic' '()Ljava/lang/Object;' in 'java/lang/invoke/MethodHandle' # [sp+0x0] (sp of caller) 1.36% 0.02% 0x00007fcc74498c40: mov 0x10(%rsi),%ebx 0.03% 0x00007fcc74498c43: shl $0x3,%rbx 0.01% 0x00007fcc74498c47: mov 0x24(%rbx),%ebx 0.36% 0.02% 0x00007fcc74498c4a: shl $0x3,%rbx 1.32% 0.62% 0x00007fcc74498c4e: mov 0x18(%rbx),%rbx 6.06% 3.00% 0x00007fcc74498c52: test %rbx,%rbx 0x00007fcc74498c55: je 0x00007fcc74498c5e 1.21% 0.02% 0x00007fcc74498c5b: jmpq *0x40(%rbx) 0x00007fcc74498c5e: jmpq 0x00007fcc743d5060 ; {runtime_call} 0x00007fcc74498c63: hlt 0x00007fcc74498c64: hlt 0x00007fcc74498c65: hlt 0x00007fcc74498c66: hlt 0x00007fcc74498c67: hlt 233 57 n 0 java.lang.invoke.MethodHandle::invokeBasic()L (native) Decoding compiled method 0x00007fcc74498d10: Code: .................................................................................................... 10.35% 3.68% ....[Hottest Regions]............................................................................... 57.47% 79.88% [0x7fcc74525780:0x7fcc74525857] in 16.73% 12.89% [0x7fcc7453ccd6:0x7fcc7453cd56] in org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub 10.35% 3.68% [0x7fcc74498c40:0x7fcc74498c5b] in java.lang.String::length 7.10% 0.96% [0x7fcc745225c0:0x7fcc745225d0] in sun.util.locale.BaseLoca::getLanguage 6.43% 0.96% [0x7fcc74528880:0x7fcc74528891] in org.sample.ConstructorBenchmark$SimpleObject:: 0.72% 0.61% [0x0:0x0] in 0.36% 0.22% [0x7fcc8902eed0:0x7fcc8902eed9] in 0.18% 0.09% [0x7fcc8924f5a0:0x7fcc8924f5ae] in 0.12% 0.13% [0x7fcc89209f80:0x7fcc89209fcd] in 0.12% 0.11% [0x7fcc7453c35d:0x7fcc7453c3be] in org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub 0.02% [0x7fcc891aa9c6:0x7fcc891aa9c6] in PSScavengeKlassClosure::do_klass(Klass*) (libjvm.so) 0.01% [0x7fcc897ef7f8:0x7fcc897ef800] in __pthread_disable_asynccancel (libpthread-2.15.so) 0.01% [0x7fcc89d0448f:0x7fcc89d0449b] in [unknown] (libc-2.15.so) 0.01% [0x7fcc7039b618:0x7fcc7039b618] in [unknown] ([unknown]) 0.01% [0x7fcc7039c292:0x7fcc7039c292] in [unknown] ([unknown]) 0.01% [0x7fcc703a090c:0x7fcc703a090c] in [unknown] ([unknown]) 0.01% [0x7fcc74392e50:0x7fcc74392e50] in [unknown] ([unknown]) 0.01% [0x7fcc74393d21:0x7fcc74393d21] in [unknown] ([unknown]) 0.01% [0x7fcc7449dc62:0x7fcc7449dc62] in 0.01% [0x7fcc88b10500:0x7fcc88b10500] in 0.33% 0.47% <...other 99 warm regions...> .................................................................................................... 100.00% 99.99% ....[Hottest Methods (after inlining)].............................................................. 58.32% 80.54% 16.85% 13.00% org.sample.generated.ConstructorBenchmark_create_handle::create_handle_thrpt_jmhStub 10.35% 3.68% java.lang.String::length 7.10% 0.96% sun.util.locale.BaseLoca::getLanguage 6.43% 0.96% org.sample.ConstructorBenchmark$SimpleObject:: 0.72% 0.61% 0.04% 0.01% [unknown] (libc-2.15.so) 0.03% 0.01% [unknown] ([unknown]) 0.02% PSScavengeKlassClosure::do_klass(Klass*) (libjvm.so) 0.01% 0.02% vfprintf (libc-2.15.so) 0.01% 0.02% _IO_fwrite (libc-2.15.so) 0.01% __pthread_disable_asynccancel (libpthread-2.15.so) 0.01% 0.02% fileStream::write(char const*, unsigned long) (libjvm.so) 0.01% 0.01% _IO_default_xsputn (libc-2.15.so) 0.01% defaultStream::hold(long) (libjvm.so) 0.01% 0.01% _IO_file_xsputn (libc-2.15.so) 0.01% PSGCAdaptivePolicyCounters::update_counters_from_policy() (libjvm.so) 0.01% 0.03% RelocIterator::initialize(nmethod*, unsigned char*, unsigned char*) (libjvm.so) 0.01% pthread_self (libc-2.15.so) 0.01% _IO_fflush (libc-2.15.so) 0.04% 0.04% <...other 6 warm methods...> .................................................................................................... 100.00% 99.91% ....[Distribution by Area].......................................................................... 99.05% 99.13% 0.72% 0.61% 0.10% 0.10% 0.08% 0.11% 0.03% 0.01% 0.02% 0.02% .................................................................................................... 100.00% 99.99% # Run complete. Total time: 00:00:24 Benchmark Mode Samples Score Score error Units o.s.ConstructorBenchmark.create_handle thrpt 3 25.208 1.080 ops/us o.s.ConstructorBenchmark.create_handle:@asm thrpt 1 NaN NaN ---