# JMH 1.17.5 (released 5 days ago) # VM version: JDK 1.8.0_101, VM 25.101-b13 # VM invoker: /home/shade/Install/jdk8u101/jre/bin/java # VM options: -XX:-TieredCompilation -XX:-UseBiasedLocking -XX:LoopUnrollLimit=1 # Warmup: 10 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.LockRoach.test # Run progress: 0.00% complete, ETA 00:00:15 # 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: 20706.960 ns/op # Warmup Iteration 2: 20679.717 ns/op # Warmup Iteration 3: 20679.227 ns/op # Warmup Iteration 4: 20678.360 ns/op # Warmup Iteration 5: 20685.558 ns/op # Warmup Iteration 6: 20680.285 ns/op # Warmup Iteration 7: 20685.853 ns/op # Warmup Iteration 8: 20679.005 ns/op # Warmup Iteration 9: 20678.610 ns/op # Warmup Iteration 10: 20678.578 ns/op Iteration 1: 20679.740 ns/op Iteration 2: 20678.639 ns/op Iteration 3: 20678.294 ns/op Iteration 4: 20678.453 ns/op Iteration 5: 20680.087 ns/op # Processing profiler results: LinuxPerfAsmProfiler Result "org.openjdk.LockRoach.test": 20679.043 ±(99.9%) 3.133 ns/op [Average] (min, avg, max) = (20678.294, 20679.043, 20680.087), stdev = 0.814 CI (99.9%): [20675.909, 20682.176] (assumes normal distribution) Secondary result "org.openjdk.LockRoach.test:·asm": PrintAssembly processed: 44917 total address lines. Perf output processed (skipped 10.020 seconds): Column 1: cycles (5109 events) Column 2: instructions (5108 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. C2, org.openjdk.LockRoach::test, version 80 (226 bytes) 0x00007f964d0893c0: mov %eax,-0x14000(%rsp) 0x00007f964d0893c7: push %rbp 0x00007f964d0893c8: sub $0x30,%rsp ;*synchronization entry ; - org.openjdk.LockRoach::test@-1 (line 51) 0x00007f964d0893cc: mov %rsi,(%rsp) 0x00007f964d0893d0: xor %ebp,%ebp ;*aload_0 ; - org.openjdk.LockRoach::test@9 (line 52) ↗ 0x00007f964d0893d2: lea 0x20(%rsp),%rbx │ 0x00007f964d0893d7: mov (%rsp),%r11 │ 0x00007f964d0893db: mov (%r11),%rax 16.62% │ 0x00007f964d0893de: test $0x2,%rax ╭ │ 0x00007f964d0893e4: jne 0x00007f964d08940a 1.55% │ │ 0x00007f964d0893e6: or $0x1,%rax │ │ 0x00007f964d0893ea: mov %rax,(%rbx) 1.35% │ │ 0x00007f964d0893ed: lock cmpxchg %rbx,(%r11) 32.59% 46.03% │╭ │ 0x00007f964d0893f2: je 0x00007f964d089423 ││ │ 0x00007f964d0893f8: sub %rsp,%rax ││ │ 0x00007f964d0893fb: and $0xfffffffffffff007,%rax ││ │ 0x00007f964d089402: mov %rax,(%rbx) ││╭ │ 0x00007f964d089405: jmpq 0x00007f964d089423 ↘││ │ 0x00007f964d08940a: movq $0x3,(%rbx) ││ │ 0x00007f964d089411: mov %rax,%rbx ││ │ 0x00007f964d089414: mov 0x16(%rbx),%rax ││ │ 0x00007f964d089418: test %rax,%rax ││╭ │ 0x00007f964d08941b: jne 0x00007f964d089423 │││ │ 0x00007f964d08941d: lock cmpxchg %r15,0x16(%rbx) ↘↘↘╭ │ 0x00007f964d089423: jne 0x00007f964d0894d8 ;*monitorenter │ │ ; - org.openjdk.LockRoach::test@12 (line 52) 1.08% │ │ 0x00007f964d089429: mov (%rsp),%r10 │ │ 0x00007f964d08942d: addl $0x42,0xc(%r10) ;*monitorexit │ │ ; - org.openjdk.LockRoach::test@25 (line 54) │ │ 0x00007f964d089432: lea 0x20(%rsp),%rax ;*monitorenter │ │ ; - org.openjdk.LockRoach::test@12 (line 52) 1.47% │ │ 0x00007f964d089437: mov (%rsp),%r11 │ │ 0x00007f964d08943b: cmpq $0x0,(%rax) │╭ │ 0x00007f964d089442: je 0x00007f964d0894bc ││ │ 0x00007f964d089448: mov (%r11),%r10 16.87% ││ │ 0x00007f964d08944b: test $0x2,%r10 ││╭ │ 0x00007f964d089452: je 0x00007f964d0894b4 │││ │ 0x00007f964d089454: mov 0x16(%r10),%rax │││ │ 0x00007f964d089458: xor %r15,%rax │││ │ 0x00007f964d08945b: or 0x26(%r10),%rax │││╭ │ 0x00007f964d08945f: jne 0x00007f964d0894bc ││││ │ 0x00007f964d089461: mov 0x36(%r10),%rax ││││ │ 0x00007f964d089465: or 0x3e(%r10),%rax ││││╭ │ 0x00007f964d089469: jne 0x00007f964d089475 │││││ │ 0x00007f964d08946b: movq $0x0,0x16(%r10) │││││╭ │ 0x00007f964d089473: jmp 0x00007f964d0894bc ││││↘│ │ 0x00007f964d089475: cmpq $0x0,0x46(%r10) ││││ │╭ │ 0x00007f964d08947d: je 0x00007f964d0894a8 ││││ ││ │ 0x00007f964d08947f: movq $0x0,0x16(%r10) ││││ ││ │ 0x00007f964d089487: lock addl $0x0,(%rsp) ││││ ││ │ 0x00007f964d08948c: cmpq $0x0,0x46(%r10) ││││ ││╭ │ 0x00007f964d089494: jne 0x00007f964d0894ad ││││ │││ │ 0x00007f964d089496: movabs $0x0,%rax ││││ │││ │ 0x00007f964d0894a0: lock cmpxchg %r15,0x16(%r10) ││││ │││╭ │ 0x00007f964d0894a6: jne 0x00007f964d0894ad ││││ │↘││ │ 0x00007f964d0894a8: or $0x1,%eax ││││ │ ││╭ │ 0x00007f964d0894ab: jmp 0x00007f964d0894bc ││││ │ ↘↘│ │ 0x00007f964d0894ad: test $0x0,%eax ││││ │ │╭│ 0x00007f964d0894b2: jmp 0x00007f964d0894bc 1.00% ││↘│ │ │││ 0x00007f964d0894b4: mov (%rax),%r10 ││ │ │ │││ 0x00007f964d0894b7: lock cmpxchg %r10,(%r11) 24.51% 50.74% │↘ ↘ ↘ ↘↘│ 0x00007f964d0894bc: jne 0x00007f964d0894ed ;*monitorexit │ │ ; - org.openjdk.LockRoach::test@25 (line 54) │ │ 0x00007f964d0894be: inc %ebp ;*iinc │ │ ; - org.openjdk.LockRoach::test@34 (line 51) 0.86% │ │ 0x00007f964d0894c0: cmp $0x3e8,%ebp │ ╰ 0x00007f964d0894c6: jl 0x00007f964d0893d2 ;*monitorexit │ ; - org.openjdk.LockRoach::test@25 (line 54) │ 0x00007f964d0894cc: add $0x30,%rsp │ 0x00007f964d0894d0: pop %rbp │ 0x00007f964d0894d1: test %eax,0xb491b29(%rip) # 0x00007f965851b000 │ ; {poll_return} │ 0x00007f964d0894d7: retq ↘ 0x00007f964d0894d8: mov %r11,%rsi 0x00007f964d0894db: lea 0x20(%rsp),%rdx .................................................................................................... 97.89% 96.77% ....[Hottest Regions]............................................................................... 97.89% 96.77% C2 org.openjdk.LockRoach::test, version 80 (226 bytes) 2.06% 2.11% kernel [unknown] (34 bytes) 0.02% interpreter new 187 new (0 bytes) 0.02% libjvm.so _Copy_arrayof_conjoint_jshorts (0 bytes) 0.04% kernel [unknown] (0 bytes) 0.02% kernel [unknown] (0 bytes) 0.02% kernel [unknown] (0 bytes) 0.12% kernel [unknown] (1268 bytes) 0.02% kernel [unknown] (0 bytes) 0.04% kernel [unknown] (129 bytes) 0.02% kernel [unknown] (0 bytes) 0.04% kernel [unknown] (874 bytes) 0.02% kernel [unknown] (0 bytes) 0.02% kernel [unknown] (0 bytes) 0.04% kernel [unknown] (4 bytes) 0.04% kernel [unknown] (17 bytes) 0.02% kernel [unknown] (0 bytes) 0.12% kernel [unknown] (938 bytes) 0.04% kernel [unknown] (5 bytes) 0.02% kernel [unknown] (0 bytes) 0.49% <...other 15 warm regions...> .................................................................................................... 99.98% 100.00% ....[Hottest Methods (after inlining)].............................................................. 97.89% 96.77% C2 org.openjdk.LockRoach::test, version 80 2.06% 3.19% kernel [unknown] 0.02% libjvm.so _Copy_arrayof_conjoint_jshorts 0.02% interpreter new 187 new .................................................................................................... 99.98% 99.96% ....[Distribution by Source]........................................................................ 97.89% 96.77% C2 2.06% 3.19% kernel 0.02% libjvm.so 0.02% 0.04% interpreter .................................................................................................... 99.98% 100.00% # Run complete. Total time: 00:00:16 Benchmark Mode Cnt Score Error Units LockRoach.test avgt 5 20679.043 ± 3.133 ns/op LockRoach.test:·asm avgt NaN ---