boris@sochi:~/jdk-dev$ ./build/linux-x86_64-server-release/jdk/bin/java -XX:-TieredCompilation -XX:InitialCodeCacheSize=500M -XX:ReservedCodeCacheSize=500M -Xms50g -Xmx50g -jar /home/boris/renaissance/renaissance-jmh-0.13.0-86-gbe1e64f.jar -f 1 -wi 4 -i 1 JmhScalaDoku -prof perfasm # JMH version: 1.33 # VM version: JDK 20-internal, OpenJDK 64-Bit Server VM, 20-internal-adhoc.boris.jdk-dev # VM invoker: /home/boris/jdk-dev/build/linux-x86_64-server-release/jdk/bin/java # VM options: -XX:-TieredCompilation -XX:InitialCodeCacheSize=500M -XX:ReservedCodeCacheSize=500M -Xms50g -Xmx50g # Blackhole mode: full + dont-inline hint (default, use -Djmh.blackhole.autoDetect=true to auto-detect) # Warmup: 4 iterations, single-shot each # Measurement: 1 iterations, single-shot each # Timeout: 10 min per iteration # Threads: 1 thread # Benchmark mode: Single shot invocation time # Benchmark: org.renaissance.scala.sat.JmhScalaDoku.runOperation # Run progress: 0.00% complete, ETA 00:00:00 # 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: 5646.044 ms/op # Warmup Iteration 2: 4272.880 ms/op # Warmup Iteration 3: 4480.221 ms/op # Warmup Iteration 4: 4377.127 ms/op Iteration 1: 4388.454 ms/op # Processing profiler results: LinuxPerfAsmProfiler Secondary result "org.renaissance.scala.sat.JmhScalaDoku.runOperation:·asm": PrintAssembly processed: 197790 total address lines. Perf output processed (skipped 20.958 seconds): Column 1: cycles (4489 events) Hottest code regions (>10.00% "cycles" events): ....[Hottest Region 1].............................................................................. c2, scala.collection.immutable.ChampBaseIterator::searchNextValueNode, version 1203 (479 bytes) [Constant Pool (empty)] -------------------------------------------------------------------------------- [Entry Point] # {method} {0x00007ff2bd16db68} 'searchNextValueNode' '()Z' in 'scala/collection/immutable/ChampBaseIterator' # [sp+0x40] (sp of caller) 0x00007fffd0ee1fe0: mov 0x8(%rsi),%r10d 0x00007fffd0ee1fe4: cmp %r10,%rax 0x00007fffd0ee1fe7: jne 0x00007fffd0c61280 ; {runtime_call ic_miss_stub} 0x00007fffd0ee1fed: data16 xchg %ax,%ax [Verified Entry Point] 0.13% 0x00007fffd0ee1ff0: mov %eax,-0x14000(%rsp) 0.42% 0x00007fffd0ee1ff7: push %rbp 0.13% 0x00007fffd0ee1ff8: sub $0x30,%rsp ;*synchronization entry ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) 0.04% 0x00007fffd0ee1ffc: mov %rsi,0x8(%rsp) 0.25% 0x00007fffd0ee2001: xor %r9d,%r9d ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@0 (line 163) 0.02% ↗ 0x00007fffd0ee2004: mov 0x8(%rsp),%r10 0.25% │ 0x00007fffd0ee2009: mov 0x14(%r10),%r12d ;*getfield currentStackLevel {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@1 (line 163) 0.49% │ 0x00007fffd0ee200d: test %r12d,%r12d │ 0x00007fffd0ee2010: jl 0x00007fffd0ee221d ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@5 (line 163) 0.11% │ 0x00007fffd0ee2016: mov 0x20(%r10),%rcx ;*getfield nodeCursorsAndLengths {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@25 (line 167) 0.09% │ 0x00007fffd0ee201a: mov 0xc(%rcx),%r11d ; implicit exception: dispatches to 0x00007fffd0ee23cc │ ;*iaload {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@29 (line 167) 0.47% │ 0x00007fffd0ee201e: test %r11d,%r11d │ 0x00007fffd0ee2021: jbe 0x00007fffd0ee23cc 0.13% │ 0x00007fffd0ee2027: movslq %r11d,%r10 0.02% │ 0x00007fffd0ee202a: movslq %r12d,%r8 │ 0x00007fffd0ee202d: shl %r8 0.16% │ 0x00007fffd0ee2030: cmp %r10,%r8 │ 0x00007fffd0ee2033: jae 0x00007fffd0ee23cc 0.02% │ 0x00007fffd0ee2039: cmp $0x1,%r11d │ 0x00007fffd0ee203d: jbe 0x00007fffd0ee23cc 0.02% │ 0x00007fffd0ee2043: add $0x1,%r8 0.02% │ 0x00007fffd0ee2047: cmp %r10,%r8 │ 0x00007fffd0ee204a: jae 0x00007fffd0ee23cc ;*getfield currentStackLevel {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@9 (line 164) 0.07% ↗ │ 0x00007fffd0ee2050: mov %r12d,%ebx ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} │ │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@8 (line 164) ↗│ │ 0x00007fffd0ee2053: mov %ebx,%r11d 0.02% ││ │ 0x00007fffd0ee2056: shl %r11d ;*imul {reexecute=0 rethrow=0 return_oop=0} ││ │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@13 (line 164) ││ │ 0x00007fffd0ee2059: mov 0x10(%rcx,%r11,4),%edx ;*iaload {reexecute=0 rethrow=0 return_oop=0} ││ │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@29 (line 167) 0.18% ││ │ 0x00007fffd0ee205e: movslq %r11d,%r10 0.09% ││ │ 0x00007fffd0ee2061: mov 0x14(%rcx,%r10,4),%r8d ;*iaload {reexecute=0 rethrow=0 return_oop=0} ││ │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@36 (line 168) 0.02% ││ │ 0x00007fffd0ee2066: cmp %r8d,%edx ╭││ │ 0x00007fffd0ee2069: jl 0x00007fffd0ee20b8 ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0} │││ │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@42 (line 170) 0.16% │││ │ 0x00007fffd0ee206b: mov %r12d,%r8d 0.11% │││ │ 0x00007fffd0ee206e: inc %r8d 0.02% │││ │ 0x00007fffd0ee2071: cmp $0xffffffff,%r12d │││ │ 0x00007fffd0ee2075: cmovl %r9d,%r8d 0.07% │││ │ 0x00007fffd0ee2079: mov $0x3e8,%r10d 0.04% │││ │ 0x00007fffd0ee207f: cmp $0x3e8,%r8d │││ │ 0x00007fffd0ee2086: cmova %r10d,%r8d 0.02% │││ │ 0x00007fffd0ee208a: mov %r12d,%r10d 0.02% │││ │ 0x00007fffd0ee208d: sub %r8d,%r10d 0.02% │││ │ 0x00007fffd0ee2090: dec %ebx ;*isub {reexecute=0 rethrow=0 return_oop=0} │││ │ ; - scala.collection.immutable.ChampBaseIterator::popNode@6 (line 155) │││ │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@107 (line 178) │││ │ 0x00007fffd0ee2092: mov 0x8(%rsp),%r11 │││ │ 0x00007fffd0ee2097: mov %ebx,0x14(%r11) ;*putfield currentStackLevel {reexecute=0 rethrow=0 return_oop=0} │││ │ ; - scala.collection.immutable.ChampBaseIterator::popNode@7 (line 155) │││ │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@107 (line 178) 0.18% │││ │ 0x00007fffd0ee209b: cmp %r10d,%ebx │╰│ │ 0x00007fffd0ee209e: jg 0x00007fffd0ee2053 ;*checkcast {reexecute=0 rethrow=0 return_oop=0} │ │ │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@14 (line 441) │ │ │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@2 (line 406) │ │ │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) │ │ │ 0x00007fffd0ee20a0: mov 0x380(%r15),%r11 ; ImmutableOopMap {rcx=Oop [8]=Oop } │ │ │ ;*goto {reexecute=1 rethrow=0 return_oop=0} │ │ │ ; - (reexecute) scala.collection.immutable.ChampBaseIterator::searchNextValueNode@110 (line 163) │ │ │ 0x00007fffd0ee20a7: test %eax,(%r11) ;*goto {reexecute=0 rethrow=0 return_oop=0} │ │ │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@110 (line 163) │ │ │ ; {poll} │ │ │ 0x00007fffd0ee20aa: cmp $0xffffffff,%ebx │ │ │ 0x00007fffd0ee20ad: jle 0x00007fffd0ee221d │ │ │ 0x00007fffd0ee20b3: mov %ebx,%r12d │ ╰ │ 0x00007fffd0ee20b6: jmp 0x00007fffd0ee2050 0.47% ↘ │ 0x00007fffd0ee20b8: mov 0x10(%rcx,%r11,4),%r10d ;*iaload {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@57 (line 171) 0.18% │ 0x00007fffd0ee20bd: mov 0x8(%rsp),%r8 │ 0x00007fffd0ee20c2: mov 0x28(%r8),%rbp ;*getfield nodes {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@62 (line 173) 0.20% │ 0x00007fffd0ee20c6: inc %r10d 0.09% │ 0x00007fffd0ee20c9: mov %r10d,0x10(%rcx,%r11,4) ;*iastore {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@60 (line 171) 0.27% │ 0x00007fffd0ee20ce: mov 0xc(%rbp),%r10d ; implicit exception: dispatches to 0x00007fffd0ee2458 0.22% │ 0x00007fffd0ee20d2: cmp %r10d,%ebx │ 0x00007fffd0ee20d5: jae 0x00007fffd0ee23dc │ 0x00007fffd0ee20db: mov 0x10(%rbp,%rbx,8),%r11 ;*aaload {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@69 (line 173) 0.13% │ 0x00007fffd0ee20e0: mov 0x8(%r11),%r10d ; implicit exception: dispatches to 0x00007fffd0ee2464 0.18% │ 0x00007fffd0ee20e4: cmp $0x8022c8f0,%r10d ; {metadata('scala/collection/immutable/BitmapIndexedSetNode')} │ 0x00007fffd0ee20eb: jne 0x00007fffd0ee227a ;*invokevirtual getNode {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@71 (line 173) 0.02% │ 0x00007fffd0ee20f1: mov 0x20(%r11),%r8 ;*getfield content {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.BitmapIndexedSetNode::content@1 (line 409) │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@1 (line 441) │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@2 (line 406) │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) │ 0x00007fffd0ee20f5: mov 0xc(%r8),%r10d ; implicit exception: dispatches to 0x00007fffd0ee2470 │ ;*arraylength {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@8 (line 441) │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@2 (line 406) │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) 0.49% │ 0x00007fffd0ee20f9: mov %r10d,%ebp 0.11% │ 0x00007fffd0ee20fc: sub %edx,%ebp 0.11% │ 0x00007fffd0ee20fe: dec %ebp ;*isub {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@12 (line 441) │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@2 (line 406) │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) 0.07% │ 0x00007fffd0ee2100: cmp %r10d,%ebp │ 0x00007fffd0ee2103: jae 0x00007fffd0ee23f0 0.25% │ 0x00007fffd0ee2109: movslq %r10d,%r10 │ 0x00007fffd0ee210c: movslq %edx,%r11 │ 0x00007fffd0ee210f: sub %r11,%r10 │ 0x00007fffd0ee2112: mov 0x8(%r8,%r10,8),%r12 ;*aaload {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@13 (line 441) │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@2 (line 406) │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) 0.96% │ 0x00007fffd0ee2117: mov 0x8(%r12),%r11d ; implicit exception: dispatches to 0x00007fffd0ee247c 3.61% │ 0x00007fffd0ee211c: mov %r11d,%r10d │ 0x00007fffd0ee211f: mov 0x40(%r10),%r10 1.65% │ 0x00007fffd0ee2123: movabs $0x8022c650,%r11 ; {metadata('scala/collection/immutable/SetNode')} │ 0x00007fffd0ee212d: cmp %r11,%r10 │ 0x00007fffd0ee2130: jne 0x00007fffd0ee2233 ;*synchronization entry │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) 0.20% │ 0x00007fffd0ee2136: mov 0x8(%r12),%ebp │ 0x00007fffd0ee213b: cmp $0x8022c8f0,%ebp ; {metadata('scala/collection/immutable/BitmapIndexedSetNode')} │ 0x00007fffd0ee2141: jne 0x00007fffd0ee22a9 │ 0x00007fffd0ee2147: mov %r12,%r10 ;*invokevirtual hasNodes {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@78 (line 175) │ 0x00007fffd0ee214a: mov 0x10(%r10),%r11d 0.25% │ 0x00007fffd0ee214e: test %r11d,%r11d │ 0x00007fffd0ee2151: setne %al 0.02% │ 0x00007fffd0ee2154: movzbl %al,%eax ;*synchronization entry │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) │ 0x00007fffd0ee2157: test %eax,%eax ╭│ 0x00007fffd0ee2159: je 0x00007fffd0ee217d ;*ifeq {reexecute=0 rethrow=0 return_oop=0} ││ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@81 (line 175) 0.42% ││ 0x00007fffd0ee215b: mov %r12,0x10(%rsp) 0.38% ││ 0x00007fffd0ee2160: mov %r9d,(%rsp) ;*invokevirtual hasNodes {reexecute=0 rethrow=0 return_oop=0} ││ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@78 (line 175) 0.16% ││ 0x00007fffd0ee2164: mov 0x8(%rsp),%rsi ││ 0x00007fffd0ee2169: mov %r12,%rdx ││ 0x00007fffd0ee216c: data16 xchg %ax,%ax ││ 0x00007fffd0ee216f: callq 0x00007fffd0c61780 ; ImmutableOopMap {[8]=Oop [16]=Oop } ││ ;*invokespecial pushNode {reexecute=0 rethrow=0 return_oop=0} ││ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@87 (line 175) ││ ; {optimized virtual_call} ││ 0x00007fffd0ee2174: mov (%rsp),%r9d 0.02% ││ 0x00007fffd0ee2178: mov 0x10(%rsp),%r12 ;*aload {reexecute=0 rethrow=0 return_oop=0} ││ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@90 (line 176) 0.36% ↘│ 0x00007fffd0ee217d: cmp $0x8022c8f0,%ebp ; {metadata('scala/collection/immutable/BitmapIndexedSetNode')} │ 0x00007fffd0ee2183: jne 0x00007fffd0ee22e8 0.20% │ 0x00007fffd0ee2189: mov %r12,%r10 ;*invokevirtual hasPayload {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@92 (line 176) │ 0x00007fffd0ee218c: mov 0xc(%r10),%r10d 0.25% │ 0x00007fffd0ee2190: test %r10d,%r10d 0.22% │ 0x00007fffd0ee2193: setne %al 0.07% │ 0x00007fffd0ee2196: movzbl %al,%eax ;*checkcast {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@14 (line 441) │ ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@2 (line 406) │ ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) 0.09% │ 0x00007fffd0ee2199: mov 0x380(%r15),%r10 ; ImmutableOopMap {r12=Oop [8]=Oop } │ ;*ifeq {reexecute=1 rethrow=0 return_oop=0} │ ; - (reexecute) scala.collection.immutable.ChampBaseIterator::searchNextValueNode@95 (line 176) 0.04% │ 0x00007fffd0ee21a0: test %eax,(%r10) ; {poll} 0.25% │ 0x00007fffd0ee21a3: test %eax,%eax ╰ 0x00007fffd0ee21a5: je 0x00007fffd0ee2004 ;*checkcast {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@14 (line 441) ; - scala.collection.immutable.BitmapIndexedSetNode::getNode@2 (line 406) ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@-1 (line 163) 0.02% 0x00007fffd0ee21ab: cmpb $0x0,0x40(%r15) 0x00007fffd0ee21b0: jne 0x00007fffd0ee231b 0.02% 0x00007fffd0ee21b6: mov 0x8(%rsp),%r10 0.13% 0x00007fffd0ee21bb: mov %r12,0x18(%r10) ;*putfield currentValueNode {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.ChampBaseIterator::currentValueNode_$eq@2 (line 118) ; - scala.collection.immutable.ChampBaseIterator::setupPayloadNode@2 (line 137) ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@101 (line 176) 0x00007fffd0ee21bf: mov 0x8(%r12),%ebx ;*invokevirtual payloadArity {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.ChampBaseIterator::setupPayloadNode@12 (line 139) ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@101 (line 176) 0x00007fffd0ee21c4: mov %r12,%r10 0x00007fffd0ee21c7: mov 0x8(%rsp),%r11 0.13% 0x00007fffd0ee21cc: xor %r11,%r10 0.02% 0x00007fffd0ee21cf: shr $0x19,%r10 0x00007fffd0ee21d3: test %r10,%r10 0x00007fffd0ee21d6: je 0x00007fffd0ee21f2 0x00007fffd0ee21d8: shr $0x9,%r11 0x00007fffd0ee21dc: movabs $0x7fb347d90000,%rdi 0x00007fffd0ee21e6: add %r11,%rdi 0x00007fffd0ee21e9: cmpb $0x4,(%rdi) 0x00007fffd0ee21ec: jne 0x00007fffd0ee2350 ;*putfield currentValueNode {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.ChampBaseIterator::currentValueNode_$eq@2 (line 118) ; - scala.collection.immutable.ChampBaseIterator::setupPayloadNode@2 (line 137) ; - scala.collection.immutable.ChampBaseIterator::searchNextValueNode@101 (line 176) .................................................................................................... 16.06% ....[Hottest Region 2].............................................................................. c2, scala.runtime.java8.JFunction1$mcZI$sp::apply, version 982 (92 bytes) nul chk table [0x00007fffd0e41958,0x00007fffd0e41968] = 16 [Disassembly] -------------------------------------------------------------------------------- [Constant Pool (empty)] -------------------------------------------------------------------------------- [Entry Point] # {method} {0x00007ff2bd05cd68} 'apply' '(Ljava/lang/Object;)Ljava/lang/Object;' in 'scala/runtime/java8/JFunction1$mcZI$sp' # this: rsi:rsi = 'scala/runtime/java8/JFunction1$mcZI$sp' # parm0: rdx:rdx = 'java/lang/Object' # [sp+0x30] (sp of caller) 0.04% 0x00007fffd0e41720: mov 0x8(%rsi),%r10d 0.60% 0x00007fffd0e41724: cmp %r10,%rax 0x00007fffd0e41727: jne 0x00007fffd0c61280 ; {runtime_call ic_miss_stub} 0.40% 0x00007fffd0e4172d: data16 xchg %ax,%ax [Verified Entry Point] 0x00007fffd0e41730: mov %eax,-0x14000(%rsp) 0.53% 0x00007fffd0e41737: push %rbp 0.47% 0x00007fffd0e41738: sub $0x20,%rsp 0.04% 0x00007fffd0e4173c: mov 0x8(%rdx),%r10d ; implicit exception: dispatches to 0x00007fffd0e417a9 5.66% 0x00007fffd0e41740: cmp $0x80057dc8,%r10d ;*synchronization entry ; - scala.runtime.java8.JFunction1$mcZI$sp::apply@-1 (line 17) ; {metadata('java/lang/Integer')} ╭ 0x00007fffd0e41747: jne 0x00007fffd0e41789 ;*checkcast {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.runtime.BoxesRunTime::unboxToInt@9 (line 99) │ ; - scala.runtime.java8.JFunction1$mcZI$sp::apply@2 (line 17) 0.87% │ 0x00007fffd0e41749: mov 0xc(%rdx),%edx ;*getfield value {reexecute=0 rethrow=0 return_oop=0} │ ; - java.lang.Integer::intValue@1 (line 1147) │ ; - scala.runtime.BoxesRunTime::unboxToInt@12 (line 99) │ ; - scala.runtime.java8.JFunction1$mcZI$sp::apply@2 (line 17) 1.74% │ 0x00007fffd0e4174c: nop │ 0x00007fffd0e4174d: movabs $0xffffffffffffffff,%rax 0.16% │ 0x00007fffd0e41757: callq 0x00007fffd0c5dba0 ; ImmutableOopMap {} │ ;*invokeinterface apply$mcZI$sp {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.runtime.java8.JFunction1$mcZI$sp::apply@5 (line 17) │ ; {virtual_call} 0.22% │ 0x00007fffd0e4175c: test %eax,%eax ;*synchronization entry │ ; - scala.runtime.java8.JFunction1$mcZI$sp::apply@-1 (line 17) │╭ 0x00007fffd0e4175e: jne 0x00007fffd0e4177d 0.38% ││ 0x00007fffd0e41760: movabs $0x7fffcc028b38,%rax ;*areturn {reexecute=0 rethrow=0 return_oop=0} ││ ; - java.lang.Boolean::valueOf@13 (line 179) ││ ; - scala.runtime.java8.JFunction1$mcZI$sp::apply@10 (line 17) ││ ; {oop(a 'java/lang/Boolean'{0x00007fffcc028b38} = false)} 0.27% ││↗ 0x00007fffd0e4176a: add $0x20,%rsp 0.31% │││ 0x00007fffd0e4176e: pop %rbp 0.42% │││ 0x00007fffd0e4176f: cmp 0x378(%r15),%rsp ; {poll_return} │││ 0x00007fffd0e41776: ja 0x00007fffd0e417bc 0.20% │││ 0x00007fffd0e4177c: retq │↘│ 0x00007fffd0e4177d: movabs $0x7fffcc028b28,%rax ; {oop(a 'java/lang/Boolean'{0x00007fffcc028b28} = true)} │ ╰ 0x00007fffd0e41787: jmp 0x00007fffd0e4176a ↘ 0x00007fffd0e41789: mov %rsi,%rbp 0x00007fffd0e4178c: mov %rdx,(%rsp) ;*synchronization entry ; - scala.runtime.java8.JFunction1$mcZI$sp::apply@-1 (line 17) 0x00007fffd0e41790: mov $0xffffffde,%esi 0x00007fffd0e41795: xchg %ax,%ax 0x00007fffd0e41797: callq 0x00007fffd0c69580 ; ImmutableOopMap {rbp=Oop [0]=Oop } ;*checkcast {reexecute=0 rethrow=0 return_oop=0} ; - scala.runtime.BoxesRunTime::unboxToInt@9 (line 99) .................................................................................................... 12.32% ....[Hottest Region 3].............................................................................. c2, scala.collection.immutable.SetIterator::next, version 1202 (143 bytes) [Constant Pool (empty)] -------------------------------------------------------------------------------- [Entry Point] # {method} {0x00007ff2bd1dcb20} 'next' '()Ljava/lang/Object;' in 'scala/collection/immutable/SetIterator' # [sp+0x30] (sp of caller) 0x00007fffd0ed3d40: mov 0x8(%rsi),%r10d 0x00007fffd0ed3d44: cmp %r10,%rax 0x00007fffd0ed3d47: jne 0x00007fffd0c61280 ; {runtime_call ic_miss_stub} 0x00007fffd0ed3d4d: data16 xchg %ax,%ax [Verified Entry Point] 0.98% 0x00007fffd0ed3d50: mov %eax,-0x14000(%rsp) 0.47% 0x00007fffd0ed3d57: push %rbp 0x00007fffd0ed3d58: sub $0x20,%rsp ;*synchronization entry ; - scala.collection.immutable.SetIterator::next@-1 (line 1868) 1.16% 0x00007fffd0ed3d5c: mov %rsi,(%rsp) 0.02% 0x00007fffd0ed3d60: mov 0x10(%rsi),%r10d 0.02% 0x00007fffd0ed3d64: mov 0xc(%rsi),%r8d 0.11% 0x00007fffd0ed3d68: cmp %r10d,%r8d 0x00007fffd0ed3d6b: jge 0x00007fffd0ed3e0d ;*iconst_1 {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.ChampBaseIterator::hasNext@18 (line 185) ; - scala.collection.immutable.SetIterator::next@1 (line 1868) 0.85% 0x00007fffd0ed3d71: mov (%rsp),%r10 0x00007fffd0ed3d75: mov 0x18(%r10),%rbp ;*getfield currentValueNode {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.ChampBaseIterator::currentValueNode@1 (line 118) ; - scala.collection.immutable.SetIterator::next@16 (line 1871) 0x00007fffd0ed3d79: mov 0x8(%rbp),%r11d ; implicit exception: dispatches to 0x00007fffd0ed3ec8 0.36% 0x00007fffd0ed3d7d: movabs $0x8022c650,%r10 ; {metadata('scala/collection/immutable/SetNode')} 0.67% 0x00007fffd0ed3d87: mov %r11d,%r8d 0x00007fffd0ed3d8a: mov 0x40(%r8),%r11 0.58% 0x00007fffd0ed3d8e: cmp %r10,%r11 0.02% ╭ 0x00007fffd0ed3d91: jne 0x00007fffd0ed3de0 ;*checkcast {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.SetIterator::next@19 (line 1871) 0.56% │ 0x00007fffd0ed3d93: mov (%rsp),%r10 0.53% │ 0x00007fffd0ed3d97: mov 0xc(%r10),%r11d ;*getfield currentValueCursor {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::currentValueCursor@1 (line 116) │ ; - scala.collection.immutable.SetIterator::next@23 (line 1871) 0.02% │ 0x00007fffd0ed3d9b: mov 0x8(%rbp),%r10d │ 0x00007fffd0ed3d9f: cmp $0x8022c8f0,%r10d ; {metadata('scala/collection/immutable/BitmapIndexedSetNode')} │ 0x00007fffd0ed3da6: jne 0x00007fffd0ed3e2c ;*invokevirtual getPayload {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.SetIterator::next@26 (line 1871) 0.36% │ 0x00007fffd0ed3dac: mov 0x20(%rbp),%rbp ;*getfield content {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.BitmapIndexedSetNode::content@1 (line 409) │ ; - scala.collection.immutable.BitmapIndexedSetNode::getPayload@1 (line 437) │ ; - scala.collection.immutable.SetIterator::next@-1 (line 1868) 0.51% │ 0x00007fffd0ed3db0: mov 0xc(%rbp),%r10d ; implicit exception: dispatches to 0x00007fffd0ed3ed8 1.11% │ 0x00007fffd0ed3db4: cmp %r10d,%r11d │ 0x00007fffd0ed3db7: jae 0x00007fffd0ed3e93 0.13% │ 0x00007fffd0ed3dbd: mov 0x10(%rbp,%r11,8),%rax ;*synchronization entry │ ; - scala.collection.immutable.SetIterator::next@-1 (line 1868) 1.36% │ 0x00007fffd0ed3dc2: inc %r11d 0.36% │ 0x00007fffd0ed3dc5: mov (%rsp),%r10 │ 0x00007fffd0ed3dc9: mov %r11d,0xc(%r10) ;*if_icmplt {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.ChampBaseIterator::hasNext@8 (line 185) │ ; - scala.collection.immutable.SetIterator::next@1 (line 1868) 0.07% │ 0x00007fffd0ed3dcd: add $0x20,%rsp 0.47% │ 0x00007fffd0ed3dd1: pop %rbp 0.36% │ 0x00007fffd0ed3dd2: cmp 0x378(%r15),%rsp ; {poll_return} │ 0x00007fffd0ed3dd9: ja 0x00007fffd0ed3ef2 0.02% │ 0x00007fffd0ed3ddf: retq ↘ 0x00007fffd0ed3de0: cmpb $0x0,0x40(%r15) 0x00007fffd0ed3de5: jne 0x00007fffd0ed3e5d 0x00007fffd0ed3de7: movabs $0x7fffc5009e28,%r10 ; {oop(a 'java/lang/ClassCastException'{0x00007fffc5009e28})} 0x00007fffd0ed3df1: movq $0x0,0x18(%r10) ;*checkcast {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.SetIterator::next@19 (line 1871) 0x00007fffd0ed3df9: movabs $0x7fffc5009e28,%rsi ; {oop(a 'java/lang/ClassCastException'{0x00007fffc5009e28})} 0x00007fffd0ed3e03: add $0x20,%rsp 0x00007fffd0ed3e07: pop %rbp 0x00007fffd0ed3e08: jmpq 0x00007fffd0c83e00 ; {runtime_call _rethrow_Java} 0x00007fffd0ed3e0d: xchg %ax,%ax .................................................................................................... 11.09% ....[Hottest Regions]............................................................................... 16.06% c2 scala.collection.immutable.ChampBaseIterator::searchNextValueNode, version 1203 (479 bytes) 12.32% c2 scala.runtime.java8.JFunction1$mcZI$sp::apply, version 982 (92 bytes) 11.09% c2 scala.collection.immutable.SetIterator::next, version 1202 (143 bytes) 8.64% c2 java.lang.StringLatin1::indexOf, version 95 (114 bytes) 7.73% c2 java.lang.StringLatin1::indexOf, version 95 (118 bytes) 7.35% c2 scala.collection.IterableOnceOps::count, version 931 (112 bytes) 6.97% c2 java.lang.StringLatin1::indexOf, version 95 (114 bytes) 4.86% c2 scala.collection.immutable.ChampBaseIterator::hasNext, version 869 (56 bytes) 3.36% c2 cafesat.sat.Solver$$Lambda$190.0x00000000802423a8::apply$mcZI$sp, version 944 (47 bytes) 2.41% c2 scala.collection.IterableOnceOps::count, version 931 (25 bytes) 1.94% c2 cafesat.sat.Solver$CNFFormula$$Lambda$195.0x0000000080243938::apply$mcZI$sp, version 1005 (77 bytes) 1.36% c2 scala.collection.immutable.ChampBaseIterator::pushNode, version 1128 (186 bytes) 0.96% c2 cafesat.sat.Solver$CNFFormula$$Lambda$195.0x0000000080243938::apply$mcZI$sp, version 1005 (27 bytes) 0.91% [kernel.kallsyms] [unknown] (6 bytes) 0.65% c2 scala.collection.immutable.ChampBaseIterator::searchNextValueNode, version 1203 (51 bytes) 0.40% c2 scala.collection.immutable.ChampBaseIterator::pushNode, version 1128 (89 bytes) 0.36% [kernel.kallsyms] [unknown] (15 bytes) 0.29% c2 cafesat.sat.Vector::append, version 1046 (4 bytes) 0.22% c2 scala.collection.StrictOptimizedIterableOps::map, version 877 (21 bytes) 0.20% [kernel.kallsyms] [unknown] (0 bytes) 11.90% <...other 359 warm regions...> .................................................................................................... 99.98% ....[Hottest Methods (after inlining)].............................................................. 23.46% c2 java.lang.StringLatin1::indexOf, version 95 16.71% c2 scala.collection.immutable.ChampBaseIterator::searchNextValueNode, version 1203 12.32% c2 scala.runtime.java8.JFunction1$mcZI$sp::apply, version 982 11.09% c2 scala.collection.immutable.SetIterator::next, version 1202 9.80% c2 scala.collection.IterableOnceOps::count, version 931 5.95% [kernel.kallsyms] [unknown] 4.86% c2 scala.collection.immutable.ChampBaseIterator::hasNext, version 869 3.36% c2 cafesat.sat.Solver$$Lambda$190.0x00000000802423a8::apply$mcZI$sp, version 944 2.90% c2 cafesat.sat.Solver$CNFFormula$$Lambda$195.0x0000000080243938::apply$mcZI$sp, version 1005 1.76% c2 scala.collection.immutable.ChampBaseIterator::pushNode, version 1128 0.31% c2 cafesat.sat.Vector::append, version 1046 0.27% c2 scala.collection.StrictOptimizedIterableOps::map, version 877 0.25% c2 cafesat.sat.Solver::deduce, version 1137 0.25% c2 scala.collection.immutable.HashSetBuilder::update, version 1123 0.22% c2 scala.collection.IterableOnceOps::toSet$, version 1110 0.20% c2 scala.collection.immutable.List::forall, version 1134 0.18% c2 scala.collection.immutable.Set$::from, version 932 0.18% libjvm.so fileStream::write 0.18% perf-977.map [unknown] 0.16% c2 cafesat.api.Solver$$$Lambda$186.0x0000000080240218::apply, version 897 5.59% <...other 168 warm methods...> .................................................................................................... 99.98% ....[Distribution by Source]........................................................................ 90.15% c2 5.95% [kernel.kallsyms] 2.96% libjvm.so 0.42% libc-2.27.so 0.20% interpreter 0.18% perf-977.map 0.09% hsdis-amd64.so 0.02% runtime stub .................................................................................................... 99.98% # Run complete. Total time: 00:00:26 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 JmhScalaDoku.runOperation ss 4388.454 ms/op JmhScalaDoku.runOperation:·asm ss NaN ---