# Detecting actual CPU count: 44 detected # JMH version: 1.21 # VM version: JDK 9, Java HotSpot(TM) 64-Bit Server VM, 9+181 # VM invoker: /scratch/ecaspole/jdk-9/bin/java # VM options: -XX:+UseParallelGC # Warmup: 3 iterations, 20 s each # Measurement: 5 iterations, 10 s each # Timeout: 10 min per iteration # Threads: 44 threads, will synchronize iterations # Benchmark mode: Throughput, ops/time # Benchmark: com.oracle.Compress.compress # Run progress: 0.00% complete, ETA 00:01:50 # 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: 1313.073 ops/min # Warmup Iteration 2: 1308.447 ops/min # Warmup Iteration 3: 1295.863 ops/min Iteration 1: 1281.335 ops/min Iteration 2: 1263.709 ops/min Iteration 3: 1257.062 ops/min Iteration 4: 1257.441 ops/min Iteration 5: 1248.049 ops/min # Processing profiler results: LinuxPerfAsmProfiler Result "com.oracle.Compress.compress": 1261.519 ±(99.9%) 47.762 ops/min [Average] (min, avg, max) = (1248.049, 1261.519, 1281.335), stdev = 12.404 CI (99.9%): [1213.757, 1309.281] (assumes normal distribution) Secondary result "com.oracle.Compress.compress:·asm": PrintAssembly processed: 348483 total address lines. Perf output processed (skipped 75.698 seconds): Column 1: cycles (2727641 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. c2, level 4, spec.benchmarks.compress.Compress::performAction, version 1126 (583 bytes) 0x00007ff7457b58a2: mov %rdx,%r9 0x00007ff7457b58a5: dec %r9 0x00007ff7457b58a8: cmp %r10,%r9 0x00007ff7457b58ab: jae 0x00007ff7457b6175 ;*invokevirtual set {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Compressor::compress@243 (line 313) ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0x00007ff7457b58b1: lea (%r12,%r11,8),%r10 ;*putfield size {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::<init>@177 (line 516) ; - spec.benchmarks.compress.Compress::performAction@50 (line 80) 0x00007ff7457b58b5: lea 0x10(%r12,%r11,8),%rdi 0.00% 0x00007ff7457b58ba: mov $0xffffffff,%esi 0x00007ff7457b58bf: movabs $0x7ff73dba3540,%r10 0x00007ff7457b58c9: callq *%r10 ;*return {reexecute=0 rethrow=0 return_oop=0} ; - java.lang.Object::<init>@0 (line 50) ; - spec.benchmarks.compress.CodeTable::<init>@1 (line 146) ; - spec.benchmarks.compress.Compressor::<init>@133 (line 259) ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0x00007ff7457b58cc: mov %r13d,%edx 0x00007ff7457b58cf: mov $0x100,%esi ╭ 0x00007ff7457b58d4: jmp 0x00007ff7457b58e6 ;*bastore {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.OutputBuffer::writeByte@16 (line 131) │ ; - spec.benchmarks.compress.Compressor::<init>@177 (line 263) │ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.33% │ ↗ 0x00007ff7457b58d6: lea (%r12,%r8,8),%r10 0.00% │ │ 0x00007ff7457b58da: movzwl 0x10(%r10,%r11,2),%edx ; ImmutableOopMap{[16]=Oop [40]=Oop } │ │ ;*goto {reexecute=1 rethrow=0 return_oop=0} │ │ ; - spec.benchmarks.compress.Compressor::compress@128 (line 290) │ │ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 4.10% │ │ 0x00007ff7457b58e0: test %eax,0x1cb9971a(%rip) # 0x00007ff76234f000 │ │ ;*ishl {reexecute=0 rethrow=0 return_oop=0} │ │ ; - spec.benchmarks.compress.Compressor::<init>@42 (line 245) │ │ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) │ │ ; {poll} 0.10% ↘ ↗ │ 0x00007ff7457b58e6: mov 0x10(%rsp),%r10 0.21% │ │ 0x00007ff7457b58eb: mov 0x2c(%r10),%r10d ;*invokevirtual readByte {reexecute=0 rethrow=0 return_oop=0} │ │ ; - spec.benchmarks.compress.Compressor::compress@65 (line 283) │ │ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.18% │ │ 0x00007ff7457b58ef: mov 0xc(%r12,%r10,8),%r8d ;*iastore {reexecute=0 rethrow=0 return_oop=0} │ │ ; - spec.benchmarks.compress.Compressor$HashTable::clear@16 (line 472) │ │ ; - spec.benchmarks.compress.Compressor::compress@58 (line 281) │ │ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) │ │ ; implicit exception: dispatches to 0x00007ff7457b6325 0.51% │ │ 0x00007ff7457b58f4: mov %r8d,%r11d 0.06% │ │ 0x00007ff7457b58f7: dec %r11d 0.20% │ │ 0x00007ff7457b58fa: mov %r11d,0xc(%r12,%r10,8) ;*return {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.Object::<init>@0 (line 50) │ │ ; - spec.benchmarks.compress.CodeTable::<init>@1 (line 146) │ │ ; - spec.benchmarks.compress.Compressor::<init>@133 (line 259) │ │ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.43% │ │ 0x00007ff7457b58ff: test %r8d,%r8d │ │ 0x00007ff7457b5902: jle 0x00007ff7457b54c2 ;*iastore {reexecute=0 rethrow=0 return_oop=0} │ │ ; - spec.benchmarks.compress.Compressor$HashTable::clear@16 (line 472) │ │ ; - spec.benchmarks.compress.Compressor::compress@58 (line 281) │ │ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.26% │ │ 0x00007ff7457b5908: mov 0x10(%r12,%r10,8),%r11d ;*putfield bitsNumber {reexecute=0 rethrow=0 return_oop=0} │ │ ; - spec.benchmarks.compress.Compressor::<init>@49 (line 246) │ │ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.15% │ │ 0x00007ff7457b590d: mov 0x14(%r12,%r10,8),%r9d ;*bastore {reexecute=0 rethrow=0 return_oop=0} │ │ ; - spec.benchmarks.compress.OutputBuffer::writeByte@16 (line 131) │ │ ; - spec.benchmarks.compress.Compressor::<init>@177 (line 263) │ │ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.18% │ │ 0x00007ff7457b5912: mov %r11d,%r8d 0.18% │ │ 0x00007ff7457b5915: inc %r8d 0.20% │ │ 0x00007ff7457b5918: mov %r8d,0x10(%r12,%r10,8) ;*return {reexecute=0 rethrow=0 return_oop=0} │ │ ; - java.lang.Object::<init>@0 (line 50) │ │ ; - spec.benchmarks.compress.CodeTable::<init>@1 (line 146) │ │ ; - spec.benchmarks.compress.Compressor::<init>@133 (line 259) │ │ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.19% │ │ 0x00007ff7457b591d: mov 0xc(%r12,%r9,8),%r10d ;*invokevirtual readByte {reexecute=0 rethrow=0 return_oop=0} │ │ ; - spec.benchmarks.compress.Compressor::compress@65 (line 283) │ │ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) │ │ ; implicit exception: dispatches to 0x00007ff7457b6335 0.38% │ │ 0x00007ff7457b5922: cmp %r10d,%r11d │ │ 0x00007ff7457b5925: jae 0x00007ff7457b5c91 ;*synchronization entry │ │ ; - spec.benchmarks.compress.CodeTable::<init>@-1 (line 146) │ │ ; - spec.benchmarks.compress.Decompressor::<init>@210 (line 520) │ │ ; - spec.benchmarks.compress.Compress::performAction@50 (line 80) 0.28% │ │ 0x00007ff7457b592b: lea (%r12,%r9,8),%r10 0.21% │ │ 0x00007ff7457b592f: movzbl 0x10(%r10,%r11,1),%edi ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0} │ │ ; - spec.benchmarks.compress.CodeTable::<init>@1 (line 146) │ │ ; - spec.benchmarks.compress.Compressor::<init>@133 (line 259) │ │ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.25% ╭ │ │ 0x00007ff7457b5935: jmpq 0x00007ff7457b5a8f 0.54% │ │ ↗ │ 0x00007ff7457b593a: mov %r11d,%ebp 0.07% │ │ │ │ 0x00007ff7457b593d: mov %esi,0xc(%rsp) 0.41% │╭ │ │ │ 0x00007ff7457b5941: jmp 0x00007ff7457b599e 1.55% ││ │↗ │ │ 0x00007ff7457b5943: mov %ebp,%r11d ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0} ││ ││ │ │ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.23% ││ ││ │↗│ 0x00007ff7457b5946: sub %r8d,%r11d ;*newarray {reexecute=0 rethrow=0 return_oop=0} ││ ││ │││ ; - spec.benchmarks.compress.CodeTable::<init>@7 (line 147) ││ ││ │││ ; - spec.benchmarks.compress.Compressor::<init>@133 (line 259) ││ ││ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.18% ││ ││ │││ 0x00007ff7457b5949: mov %r11d,%ebp 0.05% ││ ││ │││ 0x00007ff7457b594c: sar $0x1f,%ebp 1.51% ││ ││ │││ 0x00007ff7457b594f: and %ebx,%ebp 0.27% ││ ││ │││ 0x00007ff7457b5951: add %r11d,%ebp ;*invokevirtual getMaxCode {reexecute=0 rethrow=0 return_oop=0} ││ ││ │││ ; - spec.benchmarks.compress.Compressor::<init>@54 (line 247) ││ ││ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.16% ││ ││ │││ 0x00007ff7457b5954: cmp %r14d,%ebp ││ ││ │││ 0x00007ff7457b5957: jae 0x00007ff7457b5cbd ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0} ││ ││ │││ ; - spec.benchmarks.compress.CodeTable::<init>@1 (line 146) ││ ││ │││ ; - spec.benchmarks.compress.Decompressor::<init>@210 (line 520) ││ ││ │││ ; - spec.benchmarks.compress.Compress::performAction@50 (line 80) 0.23% ││ ││ │││ 0x00007ff7457b595d: mov 0x10(%rcx,%rbp,4),%r11d ;*iaload {reexecute=0 rethrow=0 return_oop=0} ││ ││ │││ ; - spec.benchmarks.compress.Compressor$HashTable::of@5 (line 459) ││ ││ │││ ; - spec.benchmarks.compress.Compressor::compress@107 (line 287) ││ ││ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 12.25% ││ ││ │││ 0x00007ff7457b5962: cmp %eax,%r11d ││╭││ │││ 0x00007ff7457b5965: jne 0x00007ff7457b598f ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0} │││││ │││ ; - spec.benchmarks.compress.Compressor$HashTable::clear@7 (line 471) │││││ │││ ; - spec.benchmarks.compress.Compressor::compress@58 (line 281) │││││ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.86% │││││ │││ 0x00007ff7457b5967: mov 0xc(%r12,%r10,8),%r10d ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0} │││││ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) │││││ │││ ; implicit exception: dispatches to 0x00007ff7457b63dd 0.90% │││││ │││ 0x00007ff7457b596c: mov 0xc(%r12,%r10,8),%r8d ; implicit exception: dispatches to 0x00007ff7457b63ed 0.43% │││││ │││ 0x00007ff7457b5971: cmp %r8d,%ebp │││││ │││ 0x00007ff7457b5974: jae 0x00007ff7457b5d91 ;*bastore {reexecute=0 rethrow=0 return_oop=0} │││││ │││ ; - spec.benchmarks.compress.OutputBuffer::writeByte@16 (line 131) │││││ │││ ; - spec.benchmarks.compress.Compressor::<init>@177 (line 263) │││││ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.12% │││││ │││ 0x00007ff7457b597a: shl $0x3,%r10 0.01% │││││ │││ 0x00007ff7457b597e: movzwl 0x10(%r10,%rbp,2),%edx ; ImmutableOopMap{[16]=Oop [40]=Oop } │││││ │││ ;*goto {reexecute=1 rethrow=0 return_oop=0} │││││ │││ ; - spec.benchmarks.compress.Compressor::compress@189 (line 304) │││││ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 3.28% │││││ │││ 0x00007ff7457b5984: test %eax,0x1cb99676(%rip) # 0x00007ff76234f000 │││││ │││ ;*bastore {reexecute=0 rethrow=0 return_oop=0} │││││ │││ ; - spec.benchmarks.compress.OutputBuffer::writeByte@16 (line 131) │││││ │││ ; - spec.benchmarks.compress.Compressor::<init>@177 (line 263) │││││ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) │││││ │││ ; {poll} 0.02% │││╰│ │││ 0x00007ff7457b598a: jmpq 0x00007ff7457b58e6 ; ImmutableOopMap{r10=NarrowOop r9=NarrowOop rcx=Oop [16]=Oop [40]=Oop } │││ │ │││ ;*ifgt {reexecute=1 rethrow=0 return_oop=0} │││ │ │││ ; - spec.benchmarks.compress.Compressor::compress@194 (line 306) │││ │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.61% ││↘ │ │││ 0x00007ff7457b598f: test %eax,0x1cb9966b(%rip) # 0x00007ff76234f000 ││ │ │││ ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} ││ │ │││ ; - spec.benchmarks.compress.Compressor::compress@74 (line 284) ││ │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) ││ │ │││ ; {poll} 0.26% ││ │ │││ 0x00007ff7457b5995: test %r11d,%r11d ││ ╰ │││ 0x00007ff7457b5998: jg 0x00007ff7457b5943 ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} ││ │││ ; - spec.benchmarks.compress.Compressor::compress@61 (line 283) ││ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.55% ││ │││ 0x00007ff7457b599a: mov %esi,0xc(%rsp) ;*ishl {reexecute=0 rethrow=0 return_oop=0} ││ │││ ; - spec.benchmarks.compress.CodeTable::of@8 (line 151) ││ │││ ; - spec.benchmarks.compress.Compressor::compress@123 (line 289) ││ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.73% │↘ │││ 0x00007ff7457b599e: mov %eax,0x20(%rsp) 0.38% │ │││ 0x00007ff7457b59a2: mov %edi,0x1c(%rsp) 0.18% │ │││ 0x00007ff7457b59a6: mov %ebx,0x18(%rsp) ;*invokevirtual writeByte {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::<init>@148 (line 261) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.10% │ │││ 0x00007ff7457b59aa: mov 0x10(%rsp),%rsi 0.12% │ │││ 0x00007ff7457b59af: callq 0x00007ff745785600 ; ImmutableOopMap{[16]=Oop [40]=Oop } │ │││ ;*invokespecial output {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::compress@200 (line 309) │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) │ │││ ; {optimized virtual_call} 0.13% │ │││ 0x00007ff7457b59b4: mov 0x10(%rsp),%r10 0.09% │ │││ 0x00007ff7457b59b9: incl 0x44(%r10) ;*newarray {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.CodeTable::<init>@7 (line 147) │ │││ ; - spec.benchmarks.compress.Compressor::<init>@133 (line 259) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.62% │ │││ 0x00007ff7457b59bd: mov 0x18(%r10),%r10d 0.12% │ │││ 0x00007ff7457b59c1: mov 0x10(%rsp),%r11 0.03% │ │││ 0x00007ff7457b59c6: mov 0x4c(%r11),%r8d ;*new {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compress::performAction@11 (line 75) 0.07% │ │││ 0x00007ff7457b59ca: mov 0x24(%r11),%r11d ;*putfield bytesOut {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::<init>@67 (line 250) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.07% │ │││ 0x00007ff7457b59ce: cmp %r10d,%r11d │ │││ 0x00007ff7457b59d1: jge 0x00007ff7457b5b31 ;*invokevirtual clear {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::compress@58 (line 281) │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.08% │ │││ 0x00007ff7457b59d7: mov 0x10(%rsp),%r10 0.03% │ │││ 0x00007ff7457b59dc: mov 0x50(%r10),%r10d ;*iaload {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor$HashTable::of@5 (line 459) │ │││ ; - spec.benchmarks.compress.Compressor::compress@107 (line 287) │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.07% │ │││ 0x00007ff7457b59e0: mov %r11d,%ecx 0.08% │ │││ 0x00007ff7457b59e3: inc %ecx 0.08% │ │││ 0x00007ff7457b59e5: mov 0x10(%rsp),%r9 0.03% │ │││ 0x00007ff7457b59ea: mov %ecx,0x24(%r9) ;*newarray {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.CodeTable::<init>@7 (line 147) │ │││ ; - spec.benchmarks.compress.Compressor::<init>@133 (line 259) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.16% │ │││ 0x00007ff7457b59ee: mov 0xc(%r12,%r10,8),%r9d ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) │ │││ ; implicit exception: dispatches to 0x00007ff7457b6395 0.17% │ │││ 0x00007ff7457b59f3: movswl %r11w,%r10d ;*putfield outCount {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::<init>@72 (line 251) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.03% │ │││ 0x00007ff7457b59f7: mov 0xc(%r12,%r9,8),%ebx ; implicit exception: dispatches to 0x00007ff7457b63a9 0.55% │ │││ 0x00007ff7457b59fc: cmp %ebx,%ebp 0.00% │ │││ 0x00007ff7457b59fe: jae 0x00007ff7457b5d1d ;*new {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Decompressor::<init>@206 (line 520) │ │││ ; - spec.benchmarks.compress.Compress::performAction@50 (line 80) 0.09% │ │││ 0x00007ff7457b5a04: lea (%r12,%r9,8),%r10 0.01% │ │││ 0x00007ff7457b5a08: mov %r11w,0x10(%r10,%rbp,2) ;*newarray {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.CodeTable::<init>@7 (line 147) │ │││ ; - spec.benchmarks.compress.Compressor::<init>@133 (line 259) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.26% │ │││ 0x00007ff7457b5a0e: mov 0x10(%r12,%r8,8),%r11d ; implicit exception: dispatches to 0x00007ff7457b63bd 0.02% │ │││ 0x00007ff7457b5a13: mov 0xc(%r12,%r11,8),%r10d ; implicit exception: dispatches to 0x00007ff7457b63cd 0.04% │ │││ 0x00007ff7457b5a18: cmp %r10d,%ebp │ │││ 0x00007ff7457b5a1b: jae 0x00007ff7457b5d5d ;*new {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Decompressor::<init>@206 (line 520) │ │││ ; - spec.benchmarks.compress.Compress::performAction@50 (line 80) 0.05% │ │││ 0x00007ff7457b5a21: lea (%r12,%r11,8),%r10 0.10% │ │││ 0x00007ff7457b5a25: mov 0x20(%rsp),%r11d 0.03% │ │││ 0x00007ff7457b5a2a: mov %r11d,0x10(%r10,%rbp,4) ; ImmutableOopMap{[16]=Oop [40]=Oop } │ │││ ;*goto {reexecute=1 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::compress@280 (line 318) │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.11% │ │││ 0x00007ff7457b5a2f: test %eax,0x1cb995cb(%rip) # 0x00007ff76234f000 │ │││ ;*invokevirtual compress {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) │ │││ ; {poll} 0.03% │ │││ 0x00007ff7457b5a35: mov 0x10(%rsp),%r10 0.14% │ │││ 0x00007ff7457b5a3a: mov 0x2c(%r10),%r8d ;*getfield inCount {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::compress@76 (line 284) │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.04% │ │││ 0x00007ff7457b5a3e: mov 0xc(%r12,%r8,8),%r10d ;*invokevirtual compress {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) │ │││ ; implicit exception: dispatches to 0x00007ff7457b6371 0.28% │ │││ 0x00007ff7457b5a43: mov %r10d,%r9d 0.03% │ │││ 0x00007ff7457b5a46: dec %r9d 0.11% │ │││ 0x00007ff7457b5a49: mov %r9d,0xc(%r12,%r8,8) ;*new {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::<init>@118 (line 258) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.22% │ │││ 0x00007ff7457b5a4e: test %r10d,%r10d │ │││ 0x00007ff7457b5a51: jle 0x00007ff7457b54be ;*getfield input {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::compress@62 (line 283) │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.04% │ │││ 0x00007ff7457b5a57: mov 0x10(%r12,%r8,8),%r10d ;*new {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::<init>@118 (line 258) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.09% │ │││ 0x00007ff7457b5a5c: mov 0x14(%r12,%r8,8),%r11d ;*invokevirtual readByte {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::compress@9 (line 273) │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.07% │ │││ 0x00007ff7457b5a61: mov %r10d,%ecx 0.07% │ │││ 0x00007ff7457b5a64: inc %ecx 0.05% │ │││ 0x00007ff7457b5a66: mov %ecx,0x10(%r12,%r8,8) ;*invokespecial output {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::compress@200 (line 309) │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.11% │ │││ 0x00007ff7457b5a6b: mov 0xc(%r12,%r11,8),%r9d ;*iadd {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::compress@80 (line 284) │ │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) │ │││ ; implicit exception: dispatches to 0x00007ff7457b6381 0.24% │ │││ 0x00007ff7457b5a70: cmp %r9d,%r10d │ │││ 0x00007ff7457b5a73: jae 0x00007ff7457b5cf9 0.11% │ │││ 0x00007ff7457b5a79: shl $0x3,%r11 0.02% │ │││ 0x00007ff7457b5a7d: movzbl 0x10(%r11,%r10,1),%edi ;*invokevirtual writeByte {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::<init>@177 (line 263) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.14% │ │││ 0x00007ff7457b5a83: mov 0x1c(%rsp),%edx 0.06% │ │││ 0x00007ff7457b5a87: mov 0xc(%rsp),%esi 0.06% │ │││ 0x00007ff7457b5a8b: mov 0x18(%rsp),%ebx ;*invokevirtual getMaxCode {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - spec.benchmarks.compress.Compressor::<init>@54 (line 247) │ │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.16% ↘ │││ 0x00007ff7457b5a8f: mov 0x10(%rsp),%r10 0.26% │││ 0x00007ff7457b5a94: incl 0x40(%r10) ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0} │││ ; - spec.benchmarks.compress.CodeTable::<init>@1 (line 146) │││ ; - spec.benchmarks.compress.Compressor::<init>@133 (line 259) │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.76% │││ 0x00007ff7457b5a98: mov 0x4c(%r10),%r10d ;*iaload {reexecute=0 rethrow=0 return_oop=0} │││ ; - spec.benchmarks.compress.Compressor$HashTable::of@5 (line 459) │││ ; - spec.benchmarks.compress.Compressor::compress@107 (line 287) │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.31% │││ 0x00007ff7457b5a9c: mov %edi,%r11d 0.24% │││ 0x00007ff7457b5a9f: shl $0x8,%r11d 0.20% │││ 0x00007ff7457b5aa3: xor %edx,%r11d ;*getfield bitsNumber {reexecute=0 rethrow=0 return_oop=0} │││ ; - spec.benchmarks.compress.CompBase::getMaxCode@2 (line 198) │││ ; - spec.benchmarks.compress.Compressor::<init>@54 (line 247) │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.19% │││ 0x00007ff7457b5aa6: mov 0x10(%r12,%r10,8),%r9d ;*invokevirtual writeByte {reexecute=0 rethrow=0 return_oop=0} │││ ; - spec.benchmarks.compress.Compressor::<init>@177 (line 263) │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) │││ ; implicit exception: dispatches to 0x00007ff7457b62fd 0.54% │││ 0x00007ff7457b5aab: mov 0xc(%r12,%r9,8),%r14d ;*invokevirtual compress {reexecute=0 rethrow=0 return_oop=0} │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) │││ ; implicit exception: dispatches to 0x00007ff7457b6311 1.29% │││ 0x00007ff7457b5ab0: mov 0x10(%rsp),%r10 0.09% │││ 0x00007ff7457b5ab5: mov 0x10(%r10),%ecx 0.13% │││ 0x00007ff7457b5ab9: mov %edi,%eax 0.16% │││ 0x00007ff7457b5abb: shl %cl,%eax 0.68% │││ 0x00007ff7457b5abd: add %edx,%eax ;*isub {reexecute=0 rethrow=0 return_oop=0} │││ ; - spec.benchmarks.compress.CompBase::getMaxCode@7 (line 198) │││ ; - spec.benchmarks.compress.Compressor::<init>@54 (line 247) │││ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0.14% │││ 0x00007ff7457b5abf: cmp %r14d,%r11d 0.00% │││ 0x00007ff7457b5ac2: jae 0x00007ff7457b5c5c ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0} │││ ; - spec.benchmarks.compress.CodeTable::<init>@1 (line 146) │││ ; - spec.benchmarks.compress.Decompressor::<init>@210 (line 520) │││ ; - spec.benchmarks.compress.Compress::performAction@50 (line 80) 0.58% │││ 0x00007ff7457b5ac8: mov 0x50(%r10),%r10d ;*iaload {reexecute=0 rethrow=0 return_oop=0} │││ ; - spec.benchmarks.compress.Compressor$HashTable::of@5 (line 459) │││ ; - spec.benchmarks.compress.Compressor::compress@107 (line 287) │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.09% │││ 0x00007ff7457b5acc: lea (%r12,%r9,8),%rcx 0.12% │││ 0x00007ff7457b5ad0: mov 0x10(%rcx,%r11,4),%r13d ;*saload {reexecute=0 rethrow=0 return_oop=0} │││ ; - spec.benchmarks.compress.CodeTable::of@5 (line 151) │││ ; - spec.benchmarks.compress.Compressor::compress@123 (line 289) │││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 10.90% │││ 0x00007ff7457b5ad5: cmp %eax,%r13d ╭│││ 0x00007ff7457b5ad8: je 0x00007ff7457b5af7 ;*iastore {reexecute=0 rethrow=0 return_oop=0} ││││ ; - spec.benchmarks.compress.Compressor$HashTable::clear@16 (line 472) ││││ ; - spec.benchmarks.compress.Compressor::compress@58 (line 281) ││││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 1.23% ││││ 0x00007ff7457b5ada: test %r13d,%r13d 0.00% │╰││ 0x00007ff7457b5add: jl 0x00007ff7457b593a ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - spec.benchmarks.compress.Compressor::compress@61 (line 283) │ ││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.89% │ ││ 0x00007ff7457b5ae3: test %r11d,%r11d │ ││ 0x00007ff7457b5ae6: je 0x00007ff7457b5c47 ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - spec.benchmarks.compress.Compressor$HashTable::clear@7 (line 471) │ ││ ; - spec.benchmarks.compress.Compressor::compress@58 (line 281) │ ││ ; - spec.benchmarks.compress.Compress::performAction@36 (line 78) 0.13% │ ││ 0x00007ff7457b5aec: mov %ebx,%r8d 0.02% │ ││ 0x00007ff7457b5aef: sub %r11d,%r8d 0.07% │ ╰│ 0x00007ff7457b5af2: jmpq 0x00007ff7457b5946 1.23% ↘ │ 0x00007ff7457b5af7: mov 0xc(%r12,%r10,8),%r8d ;*invokevirtual writeByte {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Compressor::<init>@177 (line 263) │ ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) │ ; implicit exception: dispatches to 0x00007ff7457b6349 1.00% │ 0x00007ff7457b5afc: mov 0xc(%r12,%r8,8),%r10d ; implicit exception: dispatches to 0x00007ff7457b635d 0.59% │ 0x00007ff7457b5b01: cmp %r10d,%r11d ╰ 0x00007ff7457b5b04: jb 0x00007ff7457b58d6 ;*invokevirtual getMaxCode {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Compressor::<init>@54 (line 247) ; - spec.benchmarks.compress.Compress::performAction@33 (line 78) 0x00007ff7457b5b0a: mov $0xffffffe4,%esi ;*invokespecial <init> {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.CodeTable::<init>@1 (line 146) ; - spec.benchmarks.compress.Decompressor::<init>@210 (line 520) ; - spec.benchmarks.compress.Compress::performAction@50 (line 80) 0x00007ff7457b5b0f: rex.W pushq 0x10(%rsp) 0x00007ff7457b5b14: rex.W popq (%rsp) 0x00007ff7457b5b18: mov %ebx,0x8(%rsp) .................................................................................................... 61.42% ....[Hottest Region 2].............................................................................. c2, level 4, spec.benchmarks.compress.Decompressor::decompress, version 1083 (649 bytes) 0x00007ff7457a3639: cmp %eax,%r9d 0x00007ff7457a363c: jae 0x00007ff7457a3f2c 0x00007ff7457a3642: mov %dil,0x10(%rbp,%r9,1) ;*bastore {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.OutputBuffer::writeByte@16 (line 131) ; - spec.benchmarks.compress.Decompressor::decompress@169 (line 570) 0x00007ff7457a3647: test %r11d,%r11d ╭ 0x00007ff7457a364a: je 0x00007ff7457a3654 ;*ifeq {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::decompress@179 (line 571) │ 0x00007ff7457a364c: mov %r11d,%edx │ 0x00007ff7457a364f: jmp 0x00007ff7457a3614 0.09% │ 0x00007ff7457a3651: mov %edx,%r11d 0.03% ↘ 0x00007ff7457a3654: vmovd %xmm6,%r8d 0.02% 0x00007ff7457a3659: mov %r11d,0xc(%r12,%r8,8) ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@182 (line 576) 0.22% 0x00007ff7457a365e: vmovq %xmm0,%r10 0.07% 0x00007ff7457a3663: mov 0x18(%r10),%esi ;*getfield maxMaxCode {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@189 (line 576) 0.07% 0x00007ff7457a3667: vmovd %xmm1,%ecx 0.04% 0x00007ff7457a366b: cmp %esi,%ecx 0x00007ff7457a366d: jge 0x00007ff7457a3ad6 ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@192 (line 576) 0.10% 0x00007ff7457a3673: vmovd %xmm4,%r11d 0.06% 0x00007ff7457a3678: mov 0xc(%r12,%r11,8),%r9d ;*getfield tab {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.CodeTable::set@1 (line 155) ; - spec.benchmarks.compress.Decompressor::decompress@201 (line 577) ; implicit exception: dispatches to 0x00007ff7457a43c5 0.09% 0x00007ff7457a367d: movswl (%rsp),%r11d ;*i2s {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.CodeTable::set@6 (line 155) ; - spec.benchmarks.compress.Decompressor::decompress@201 (line 577) 0.05% 0x00007ff7457a3682: mov 0xc(%r12,%r9,8),%r8d ;*sastore {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.CodeTable::set@7 (line 155) ; - spec.benchmarks.compress.Decompressor::decompress@201 (line 577) ; implicit exception: dispatches to 0x00007ff7457a43d9 0.41% 0x00007ff7457a3687: cmp %r8d,%ecx 0x00007ff7457a368a: jae 0x00007ff7457a4015 0.10% 0x00007ff7457a3690: lea (%r12,%r9,8),%r11 0.02% 0x00007ff7457a3694: movslq %ecx,%r8 ;*bastore {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$SuffixTable::set@6 (line 693) ; - spec.benchmarks.compress.Decompressor::decompress@212 (line 578) 0.02% 0x00007ff7457a3697: mov (%rsp),%r9d 0.08% 0x00007ff7457a369b: mov %r9w,0x10(%r11,%r8,2) ;*sastore {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.CodeTable::set@7 (line 155) ; - spec.benchmarks.compress.Decompressor::decompress@201 (line 577) 0.24% 0x00007ff7457a36a1: cmp 0x4(%rsp),%ecx 0x00007ff7457a36a5: jae 0x00007ff7457a4041 0.03% 0x00007ff7457a36ab: vmovd %xmm2,%r11d 0.02% 0x00007ff7457a36b0: vmovq %xmm7,%r9 0.10% 0x00007ff7457a36b5: mov %r11b,0x10(%r9,%r8,1) ;*bastore {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$SuffixTable::set@6 (line 693) ; - spec.benchmarks.compress.Decompressor::decompress@212 (line 578) 0.16% 0x00007ff7457a36ba: inc %ecx ;*iadd {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@218 (line 579) 0.01% 0x00007ff7457a36bc: mov %ecx,0x24(%r10) ; ImmutableOopMap{r10=Oop xmm0=Oop } ;*goto {reexecute=1 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@224 (line 584) 0.03% 0x00007ff7457a36c0: test %eax,0x1cbab93a(%rip) # 0x00007ff76234f000 ;*goto {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@224 (line 584) ; {poll} 0.06% 0x00007ff7457a36c6: mov 0xc(%r10),%ebx ;*getfield bitsNumber {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@45 (line 605) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.14% 0x00007ff7457a36ca: mov 0x34(%r10),%r9d ;*getfield buf {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@115 (line 617) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.03% 0x00007ff7457a36ce: mov 0x14(%r10),%r8d ;*getfield maxCode {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@26 (line 598) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.03% 0x00007ff7457a36d2: mov 0x28(%r10),%edi ;*getfield clearFlag {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@4 (line 598) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.08% 0x00007ff7457a36d6: test %edi,%edi 0x00007ff7457a36d8: jg 0x00007ff7457a3919 ;*ifgt {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@7 (line 598) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.12% 0x00007ff7457a36de: mov 0x38(%r10),%eax ;*getfield size {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@15 (line 598) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.03% 0x00007ff7457a36e2: mov 0x1c(%r10),%edx ;*getfield offset {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@11 (line 598) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.04% 0x00007ff7457a36e6: cmp %eax,%edx 0x00007ff7457a36e8: jge 0x00007ff7457a3919 ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@18 (line 598) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.08% 0x00007ff7457a36ee: cmp %r8d,%ecx 0.00% 0x00007ff7457a36f1: jg 0x00007ff7457a40f1 ;*if_icmple {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@29 (line 598) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.13% 0x00007ff7457a36f7: mov %edx,%edi 0.02% 0x00007ff7457a36f9: sar $0x3,%edi ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@159 (line 625) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.04% 0x00007ff7457a36fc: mov 0xc(%r12,%r9,8),%esi ;*baload {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@191 (line 633) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) ; implicit exception: dispatches to 0x00007ff7457a43b1 0.13% 0x00007ff7457a3701: mov %edi,%eax 0.09% 0x00007ff7457a3703: inc %eax ;*iinc {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@188 (line 633) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.03% 0x00007ff7457a3705: mov %edx,%r8d 0.03% 0x00007ff7457a3708: and $0x7,%r8d ;*iand {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@180 (line 631) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.08% 0x00007ff7457a370c: cmp %esi,%edi 0x00007ff7457a370e: jae 0x00007ff7457a3fe1 0.12% 0x00007ff7457a3714: mov %ebx,(%rsp) 0.09% 0x00007ff7457a3717: mov %r11d,0xc(%rsp) 0.09% 0x00007ff7457a371c: mov %r10,%r13 0.07% 0x00007ff7457a371f: mov $0x8,%r10d 0.09% 0x00007ff7457a3725: mov %r8d,%ecx 0.04% 0x00007ff7457a3728: sub %r8d,%r10d ;*isub {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@200 (line 633) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.05% 0x00007ff7457a372b: mov %r10d,0x18(%rsp) 0.10% 0x00007ff7457a3730: movslq %r8d,%r10 0.10% 0x00007ff7457a3733: mov $0x8,%r11d 0.04% 0x00007ff7457a3739: sub %r10,%r11 0.05% 0x00007ff7457a373c: movabs $0x68340e3c8,%r10 ; {oop([B{0x000000068340e3c8})} 0.08% 0x00007ff7457a3746: movsbl 0x10(%r10,%r11,1),%r8d 0.19% 0x00007ff7457a374c: mov %ebx,%ebp 0.03% 0x00007ff7457a374e: sub 0x18(%rsp),%ebp ;*isub {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@213 (line 634) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.13% 0x00007ff7457a3752: lea (%r12,%r9,8),%r14 0.04% 0x00007ff7457a3756: movsbl 0x10(%r14,%rdi,1),%r10d 0.12% 0x00007ff7457a375c: sar %cl,%r10d 0.23% 0x00007ff7457a375f: and %r8d,%r10d 0.07% 0x00007ff7457a3762: movzbl %r10b,%r10d ;*iand {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@206 (line 633) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.06% 0x00007ff7457a3766: cmp $0x8,%ebp ╭ 0x00007ff7457a3769: jge 0x00007ff7457a3777 ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::getCode@223 (line 637) │ ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.02% │ 0x00007ff7457a376b: mov %r10d,%r11d 0.01% │ 0x00007ff7457a376e: mov %eax,%ebx 0.01% │ 0x00007ff7457a3770: mov 0x18(%rsp),%r8d 0.03% │╭ 0x00007ff7457a3775: jmp 0x00007ff7457a37a3 0.06% ↘│ 0x00007ff7457a3777: mov %edi,%ebx 0.05% │ 0x00007ff7457a3779: add $0x2,%ebx ;*iinc {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::getCode@233 (line 638) │ ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.08% │ 0x00007ff7457a377c: cmp %esi,%eax │ 0x00007ff7457a377e: jae 0x00007ff7457a4069 0.05% │ 0x00007ff7457a3784: mov $0x10,%r8d 0.04% │ 0x00007ff7457a378a: sub %ecx,%r8d ;*iinc {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::getCode@245 (line 639) │ ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.08% │ 0x00007ff7457a378d: add $0xfffffff8,%ebp ;*iinc {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::getCode@248 (line 640) │ ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.07% │ 0x00007ff7457a3790: movslq %edi,%r11 0.05% │ 0x00007ff7457a3793: movzbl 0x11(%r14,%r11,1),%r11d 0.12% │ 0x00007ff7457a3799: mov 0x18(%rsp),%ecx 0.09% │ 0x00007ff7457a379d: shl %cl,%r11d 0.21% │ 0x00007ff7457a37a0: or %r10d,%r11d ;*iload_3 {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::getCode@251 (line 645) │ ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.06% ↘ 0x00007ff7457a37a3: test %ebp,%ebp ╭ 0x00007ff7457a37a5: jg 0x00007ff7457a37ac ;*ifle {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::getCode@252 (line 645) │ ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.07% │ 0x00007ff7457a37a7: mov %r11d,%eax 0.03% │╭ 0x00007ff7457a37aa: jmp 0x00007ff7457a37de 0.07% ↘│ 0x00007ff7457a37ac: cmp %esi,%ebx │ 0x00007ff7457a37ae: jae 0x00007ff7457a4095 0.04% │ 0x00007ff7457a37b4: movsbl 0x10(%r14,%rbx,1),%r10d ;*baload {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::getCode@262 (line 646) │ ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.04% │ 0x00007ff7457a37ba: cmp $0x9,%ebp 0.00% │ 0x00007ff7457a37bd: jae 0x00007ff7457a40c5 0.02% │ 0x00007ff7457a37c3: movabs $0x68340e3c8,%r9 ; {oop([B{0x000000068340e3c8})} 0.05% │ 0x00007ff7457a37cd: movsbl 0x10(%r9,%rbp,1),%eax 0.07% │ 0x00007ff7457a37d3: and %r10d,%eax 0.03% │ 0x00007ff7457a37d6: mov %r8d,%ecx 0.01% │ 0x00007ff7457a37d9: shl %cl,%eax 0.14% │ 0x00007ff7457a37db: or %r11d,%eax ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::getCode@273 (line 648) │ ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.10% ↘ 0x00007ff7457a37de: add (%rsp),%edx 0.15% 0x00007ff7457a37e1: mov %r13,%rbx 0.05% 0x00007ff7457a37e4: mov %edx,0x1c(%rbx) ;*putfield offset {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::getCode@283 (line 648) ; - spec.benchmarks.compress.Decompressor::decompress@25 (line 540) 0.12% 0x00007ff7457a37e7: cmp $0xffffffff,%eax 0x00007ff7457a37ea: jle 0x00007ff7457a3ae4 0.05% 0x00007ff7457a37f0: vmovd %xmm3,%r10d ;*iload_1 {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@34 (line 541) 0.07% 0x00007ff7457a37f5: mov 0x3c(%rbx),%r8d ;*getfield tabPrefix {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@49 (line 542) 0.08% 0x00007ff7457a37f9: cmp $0x100,%eax 0.00% 0x00007ff7457a37ff: je 0x00007ff7457a3d90 ;*if_icmpne {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@77 (line 545) 0.08% 0x00007ff7457a3805: mov 0x24(%rbx),%esi ;*getfield freeEntry {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@87 (line 552) 0.05% 0x00007ff7457a3808: mov 0x44(%rbx),%ecx ;*getfield deStack {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@94 (line 553) 0.08% 0x00007ff7457a380b: cmp %esi,%eax 0x00007ff7457a380d: jge 0x00007ff7457a3af0 ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@90 (line 552) 0.08% 0x00007ff7457a3813: mov %eax,%r11d ;*iload_1 {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@105 (line 560) 0.06% 0x00007ff7457a3816: mov 0x40(%rbx),%ebp ;*getfield tabSuffix {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@117 (line 561) 0.06% 0x00007ff7457a3819: cmp $0x100,%r11d 0x00007ff7457a3820: jl 0x00007ff7457a34a8 ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor::decompress@109 (line 560) 0.13% 0x00007ff7457a3826: mov 0xc(%r12,%rbp,8),%edx ;*getfield tab {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$SuffixTable::of@1 (line 689) ; - spec.benchmarks.compress.Decompressor::decompress@121 (line 561) ; implicit exception: dispatches to 0x00007ff7457a43fd 0.34% 0x00007ff7457a382b: mov 0xc(%r12,%rdx,8),%r9d ;*baload {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$SuffixTable::of@5 (line 689) ; - spec.benchmarks.compress.Decompressor::decompress@121 (line 561) ; implicit exception: dispatches to 0x00007ff7457a43fd 0.52% 0x00007ff7457a3830: mov 0x10(%r12,%rcx,8),%r13d ;*getfield tab {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$DeStack::push@1 (line 669) ; - spec.benchmarks.compress.Decompressor::decompress@124 (line 561) ; implicit exception: dispatches to 0x00007ff7457a43fd 0.01% 0x00007ff7457a3835: mov 0xc(%r12,%r13,8),%edi ;*bastore {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$DeStack::push@16 (line 669) ; - spec.benchmarks.compress.Decompressor::decompress@124 (line 561) ; implicit exception: dispatches to 0x00007ff7457a43fd 0.08% 0x00007ff7457a383a: vmovd %r10d,%xmm2 0.01% 0x00007ff7457a383f: vmovq %rbx,%xmm0 0.08% 0x00007ff7457a3844: mov 0xc(%r12,%r8,8),%r10d ;*getfield tab {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.CodeTable::of@1 (line 151) ; - spec.benchmarks.compress.Decompressor::decompress@132 (line 562) ; implicit exception: dispatches to 0x00007ff7457a43f8 0.01% 0x00007ff7457a3849: mov 0xc(%r12,%r10,8),%r14d ;*saload {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.CodeTable::of@5 (line 151) ; - spec.benchmarks.compress.Decompressor::decompress@132 (line 562) ; implicit exception: dispatches to 0x00007ff7457a43f1 0.10% 0x00007ff7457a384e: cmp %r9d,%r11d 0x00007ff7457a3851: jae 0x00007ff7457a3ebf 0.02% 0x00007ff7457a3857: vmovd %edx,%xmm8 0.13% 0x00007ff7457a385b: vmovd %ebp,%xmm5 0.01% 0x00007ff7457a385f: vmovd %esi,%xmm3 0.07% 0x00007ff7457a3863: vmovd %r8d,%xmm4 0.01% 0x00007ff7457a3868: vmovd %eax,%xmm1 0.08% 0x00007ff7457a386c: mov 0xc(%r12,%rcx,8),%eax ;*getfield index {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$DeStack::push@6 (line 669) ; - spec.benchmarks.compress.Decompressor::decompress@124 (line 561) 0.01% 0x00007ff7457a3871: vmovd %ecx,%xmm6 0.08% 0x00007ff7457a3875: lea (%r12,%rdx,8),%rbx 0.02% 0x00007ff7457a3879: mov %eax,%esi 0.12% 0x00007ff7457a387b: inc %esi ;*iadd {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$DeStack::push@11 (line 669) ; - spec.benchmarks.compress.Decompressor::decompress@124 (line 561) 0.01% 0x00007ff7457a387d: mov %esi,0xc(%r12,%rcx,8) ;*putfield index {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$DeStack::push@12 (line 669) ; - spec.benchmarks.compress.Decompressor::decompress@124 (line 561) 0.10% 0x00007ff7457a3882: movsbl 0x10(%rbx,%r11,1),%ecx ;*baload {reexecute=0 rethrow=0 return_oop=0} ; - spec.benchmarks.compress.Decompressor$SuffixTable::of@5 (line 689) ; - spec.benchmarks.compress.Decompressor::decompress@121 (line 561) 0.77% 0x00007ff7457a3888: cmp %edi,%eax ╭ 0x00007ff7457a388a: jge 0x00007ff7457a38e4 0.04% │ 0x00007ff7457a388c: lea (%r12,%r10,8),%r8 0.00% │ 0x00007ff7457a3890: lea (%r12,%r13,8),%rdx ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} │ ; - spec.benchmarks.compress.Decompressor::decompress@112 (line 561) 0.62% │ 0x00007ff7457a3894: cmp %edi,%eax │╭ 0x00007ff7457a3896: jae 0x00007ff7457a38e8 0.11% ││ 0x00007ff7457a3898: mov %cl,0x10(%rdx,%rax,1) ;*bastore {reexecute=0 rethrow=0 return_oop=0} ││ ; - spec.benchmarks.compress.Decompressor$DeStack::push@16 (line 669) ││ ; - spec.benchmarks.compress.Decompressor::decompress@124 (line 561) 0.26% ││ 0x00007ff7457a389c: cmp %r14d,%r11d ││ 0x00007ff7457a389f: jae 0x00007ff7457a3e65 ;*goto {reexecute=0 rethrow=0 return_oop=0} ││ ; - spec.benchmarks.compress.Decompressor::decompress@136 (line 562) 0.02% ││ 0x00007ff7457a38a5: movzwl 0x10(%r8,%r11,2),%r11d ; ImmutableOopMap{r10=NarrowOop r8=Oop rbx=Oop rdx=Oop r13=NarrowOop xmm0=Oop xmm4=NarrowOop xmm5=NarrowOop xmm6=NarrowOop xmm8=NarrowOop } ││ ;*goto {reexecute=1 rethrow=0 return_oop=0} ││ ; - spec.benchmarks.compress.Decompressor::decompress@136 (line 562) 1.89% ││ 0x00007ff7457a38ab: test %eax,0x1cbab74f(%rip) # 0x00007ff76234f000 ││ ;*goto {reexecute=0 rethrow=0 return_oop=0} ││ ; - spec.benchmarks.compress.Decompressor::decompress@136 (line 562) ││ ; {poll} 0.11% ││ 0x00007ff7457a38b1: cmp $0x100,%r11d ││ 0x00007ff7457a38b8: jl 0x00007ff7457a3489 ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0} ││ ; - spec.benchmarks.compress.Decompressor::decompress@109 (line 560) 0.51% ││ 0x00007ff7457a38be: cmp %r9d,%r11d 0.00% ││ 0x00007ff7457a38c1: jae 0x00007ff7457a3eb3 0.36% ││ 0x00007ff7457a38c7: movsbl 0x10(%rbx,%r11,1),%ecx ;*baload {reexecute=0 rethrow=0 return_oop=0} ││ ; - spec.benchmarks.compress.Decompressor$SuffixTable::of@5 (line 689) ││ ; - spec.benchmarks.compress.Decompressor::decompress@121 (line 561) 2.07% ││ 0x00007ff7457a38cd: mov %esi,%ebp 0.02% ││ 0x00007ff7457a38cf: inc %ebp ;*iadd {reexecute=0 rethrow=0 return_oop=0} ││ ; - spec.benchmarks.compress.Decompressor$DeStack::push@11 (line 669) ││ ; - spec.benchmarks.compress.Decompressor::decompress@124 (line 561) 0.04% ││ 0x00007ff7457a38d1: vmovd %xmm6,%eax 0.03% ││ 0x00007ff7457a38d5: mov %ebp,0xc(%r12,%rax,8) ;*putfield index {reexecute=0 rethrow=0 return_oop=0} ││ ; - spec.benchmarks.compress.Decompressor$DeStack::push@12 (line 669) ││ ; - spec.benchmarks.compress.Decompressor::decompress@124 (line 561) 0.57% ││ 0x00007ff7457a38da: cmp %edi,%esi ││ 0x00007ff7457a38dc: jl 0x00007ff7457a3480 ││╭ 0x00007ff7457a38e2: jmp 0x00007ff7457a38e6 ↘││ 0x00007ff7457a38e4: mov %eax,%esi │↘ 0x00007ff7457a38e6: mov %esi,%eax ↘ 0x00007ff7457a38e8: mov $0xffffffe4,%esi 0x00007ff7457a38ed: vmovq %xmm0,%rbp 0x00007ff7457a38f2: mov %r11d,(%rsp) 0x00007ff7457a38f6: vmovss %xmm2,0x4(%rsp) .................................................................................................... 17.02% ....[Hottest Regions]............................................................................... 61.42% c2, level 4 spec.benchmarks.compress.Compress::performAction, version 1126 (583 bytes) 17.02% c2, level 4 spec.benchmarks.compress.Decompressor::decompress, version 1083 (649 bytes) 9.62% c2, level 4 spec.benchmarks.compress.Decompressor::decompress, version 1083 (402 bytes) 9.14% c2, level 4 spec.benchmarks.compress.Compressor::output, version 1035 (941 bytes) 1.95% c2, level 4 spec.benchmarks.compress.Decompressor::decompress, version 1083 (525 bytes) 0.31% runtime stub StubRoutines::updateBytesCRC32 (106 bytes) 0.17% kernel [unknown] (0 bytes) 0.11% runtime stub StubRoutines::arrayof_jshort_fill (79 bytes) 0.04% c2, level 4 spec.benchmarks.compress.Compress::performAction, version 1126 (15 bytes) 0.03% libc-2.28.so __memset_avx2_erms (2 bytes) 0.03% c2, level 4 spec.benchmarks.compress.Compress::performAction, version 1126 (35 bytes) 0.03% c2, level 4 spec.benchmarks.compress.Compress::performAction, version 1126 (19 bytes) 0.03% c2, level 4 spec.benchmarks.compress.Compress::performAction, version 1126 (58 bytes) 0.02% libpthread-2.28.so pthread_cond_wait@@GLIBC_2.3.2 (21 bytes) 0.01% c2, level 4 spec.benchmarks.compress.Compress::performAction, version 1126 (20 bytes) 0.01% libpthread-2.28.so pthread_cond_timedwait@@GLIBC_2.3.2 (12 bytes) 0.00% c2, level 4 spec.benchmarks.compress.Compress::performAction, version 1126 (15 bytes) 0.00% libc-2.28.so __memmove_sse2_unaligned_erms (20 bytes) 0.00% libjvm.so ElfSymbolTable::lookup (59 bytes) 0.00% libpthread-2.28.so __condvar_dec_grefs (14 bytes) 0.04% <...other 515 warm regions...> .................................................................................................... 100.00% ....[Hottest Methods (after inlining)].............................................................. 61.57% c2, level 4 spec.benchmarks.compress.Compress::performAction, version 1126 28.60% c2, level 4 spec.benchmarks.compress.Decompressor::decompress, version 1083 9.14% c2, level 4 spec.benchmarks.compress.Compressor::output, version 1035 0.31% runtime stub StubRoutines::updateBytesCRC32 0.17% kernel [unknown] 0.11% runtime stub StubRoutines::arrayof_jshort_fill 0.03% libc-2.28.so __memset_avx2_erms 0.02% libpthread-2.28.so pthread_cond_wait@@GLIBC_2.3.2 0.01% libpthread-2.28.so pthread_cond_timedwait@@GLIBC_2.3.2 0.00% libc-2.28.so __memmove_sse2_unaligned_erms 0.00% libc-2.28.so vfprintf 0.00% libjvm.so ElfSymbolTable::lookup 0.00% libjvm.so xmlStream::write_text 0.00% c2, level 4 spec.benchmarks.compress.Harness::runCompress, version 1191 0.00% libpthread-2.28.so __condvar_dec_grefs 0.00% libjvm.so SpinPause 0.00% libjvm.so Monitor::IWait 0.00% c2, level 4 spec.benchmarks.compress.Decompressor::getCode, version 1059 0.00% ld-2.28.so __tls_get_addr 0.00% hsdis-amd64.so print_insn 0.03% <...other 279 warm methods...> .................................................................................................... 100.00% ....[Distribution by Source]........................................................................ 99.31% c2, level 4 0.42% runtime stub 0.17% kernel 0.04% libc-2.28.so 0.04% libpthread-2.28.so 0.02% libjvm.so 0.00% hsdis-amd64.so 0.00% ld-2.28.so 0.00% interpreter 0.00% c1, level 3 0.00% [vdso] 0.00% perf-786315.map 0.00% Unknown, level 0 .................................................................................................... 100.00% # Run complete. Total time: 00:02:41 REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial experiments, perform baseline and negative tests that provide experimental control, make sure the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. Do not assume the numbers tell you what you want them to tell. Benchmark Mode Cnt Score Error Units Compress.compress thrpt 5 1261.519 ± 47.762 ops/min Compress.compress:·asm thrpt NaN ---