Last active
December 13, 2021 06:35
-
-
Save amCap1712/d4ce26356e19f0bf8b7e044463b51851 to your computer and use it in GitHub Desktop.
Java 17 vs Java 8
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Java 17+35-2724 | |
Benchmark Mode Cnt Score Error Units | |
FibonacciBenchmark.testFibonacciForkJoin avgt 9 1.160 ± 0.040 s/op | |
FibonacciBenchmark.testFibonacciSingle avgt 9 4.462 ± 0.031 s/op | |
Java 8.0.302 | |
Benchmark Mode Cnt Score Error Units | |
FibonacciBenchmark.testFibonacciForkJoin avgt 9 1.040 ± 0.014 s/op | |
FibonacciBenchmark.testFibonacciSingle avgt 9 4.091 ± 0.043 s/op |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
....[Hottest Region 1].............................................................................. | |
c2, level 4, dev.lucifer.Main::fibonacci, version 435 (184 bytes) | |
scopes pcs [0x00007fcc38c2bdc0,0x00007fcc38c2bf40] = 384 | |
dependencies [0x00007fcc38c2bf40,0x00007fcc38c2bf48] = 8 | |
handler table [0x00007fcc38c2bf48,0x00007fcc38c2bfa8] = 96 | |
-------------------------------------------------------------------------------- | |
[Constant Pool (empty)] | |
-------------------------------------------------------------------------------- | |
[Verified Entry Point] | |
# {method} {0x00007fcbfb8cea58} 'fibonacci' '(J)J' in 'dev/lucifer/Main' | |
# parm0: rsi:rsi = long | |
# [sp+0x40] (sp of caller) | |
4.77% 0x00007fcc38c2bbc0: mov %eax,-0x14000(%rsp) | |
7.04% 0x00007fcc38c2bbc7: push %rbp | |
2.41% 0x00007fcc38c2bbc8: sub $0x30,%rsp ;*synchronization entry | |
; - dev.lucifer.Main::fibonacci@-1 (line 13) | |
6.03% 0x00007fcc38c2bbcc: mov %rsi,(%rsp) | |
4.03% 0x00007fcc38c2bbd0: cmp $0x1,%rsi | |
╭ 0x00007fcc38c2bbd4: jle 0x00007fcc38c2bc63 ;*ifgt {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.Main::fibonacci@3 (line 13) | |
0.51% │ 0x00007fcc38c2bbda: mov %rsi,%r10 | |
1.27% │ 0x00007fcc38c2bbdd: add $0xfffffffffffffffd,%r10 ;*lsub {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.Main::fibonacci@18 (line 16) | |
│ ; - dev.lucifer.Main::fibonacci@11 (line 16) | |
1.83% │ 0x00007fcc38c2bbe1: mov %r10,0x18(%rsp) | |
2.16% │ 0x00007fcc38c2bbe6: mov %rsi,%rbp | |
0.52% │ 0x00007fcc38c2bbe9: dec %rbp ;*lsub {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.Main::fibonacci@10 (line 16) | |
1.31% │ 0x00007fcc38c2bbec: mov %rsi,%r10 | |
1.76% │ 0x00007fcc38c2bbef: add $0xfffffffffffffffe,%r10 ;*lsub {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.Main::fibonacci@10 (line 16) | |
│ ; - dev.lucifer.Main::fibonacci@11 (line 16) | |
2.00% │ 0x00007fcc38c2bbf3: mov %r10,0x10(%rsp) | |
0.60% │ 0x00007fcc38c2bbf8: nopl 0x0(%rax,%rax,1) | |
1.22% │ 0x00007fcc38c2bc00: cmp $0x1,%rbp | |
│╭ 0x00007fcc38c2bc04: jle 0x00007fcc38c2bc28 ;*ifgt {reexecute=0 rethrow=0 return_oop=0} | |
││ ; - dev.lucifer.Main::fibonacci@3 (line 13) | |
││ ; - dev.lucifer.Main::fibonacci@11 (line 16) | |
1.00% ││ 0x00007fcc38c2bc06: mov %r10,%rsi | |
1.25% ││ 0x00007fcc38c2bc09: xchg %ax,%ax | |
0.34% ││ 0x00007fcc38c2bc0b: call 0x00007fcc38c2bbc0 ; ImmutableOopMap {} | |
││ ;*invokestatic fibonacci {reexecute=0 rethrow=0 return_oop=0} | |
││ ; - dev.lucifer.Main::fibonacci@11 (line 16) | |
││ ; - dev.lucifer.Main::fibonacci@11 (line 16) | |
││ ; {static_call} | |
5.89% ││ 0x00007fcc38c2bc10: mov %rax,0x8(%rsp) | |
0.56% ││ 0x00007fcc38c2bc15: mov 0x18(%rsp),%rsi | |
1.94% ││ 0x00007fcc38c2bc1a: nop | |
1.33% ││ 0x00007fcc38c2bc1b: call 0x00007fcc38c2bbc0 ; ImmutableOopMap {} | |
││ ;*invokestatic fibonacci {reexecute=0 rethrow=0 return_oop=0} | |
││ ; - dev.lucifer.Main::fibonacci@19 (line 16) | |
││ ; - dev.lucifer.Main::fibonacci@11 (line 16) | |
││ ; {static_call} | |
11.37% ││ 0x00007fcc38c2bc20: mov %rax,%rbp | |
0.32% ││ 0x00007fcc38c2bc23: add 0x8(%rsp),%rbp ;*invokestatic fibonacci {reexecute=0 rethrow=0 return_oop=0} | |
││ ; - dev.lucifer.Main::fibonacci@11 (line 16) | |
2.23% │↘ 0x00007fcc38c2bc28: mov 0x10(%rsp),%r10 | |
2.52% │ 0x00007fcc38c2bc2d: cmp $0x1,%r10 | |
│ ╭ 0x00007fcc38c2bc31: jle 0x00007fcc38c2bc5b ;*ifgt {reexecute=0 rethrow=0 return_oop=0} | |
│ │ ; - dev.lucifer.Main::fibonacci@3 (line 13) | |
│ │ ; - dev.lucifer.Main::fibonacci@19 (line 16) | |
0.03% │ │ 0x00007fcc38c2bc33: mov 0x18(%rsp),%rsi | |
0.00% │ │ 0x00007fcc38c2bc38: data16 xchg %ax,%ax | |
1.44% │ │ 0x00007fcc38c2bc3b: call 0x00007fcc38c2bbc0 ; ImmutableOopMap {} | |
│ │ ;*invokestatic fibonacci {reexecute=0 rethrow=0 return_oop=0} | |
│ │ ; - dev.lucifer.Main::fibonacci@11 (line 16) | |
│ │ ; - dev.lucifer.Main::fibonacci@19 (line 16) | |
│ │ ; {static_call} | |
1.95% │ │ 0x00007fcc38c2bc40: mov %rax,0x8(%rsp) | |
0.35% │ │ 0x00007fcc38c2bc45: mov (%rsp),%rsi | |
1.26% │ │ 0x00007fcc38c2bc49: add $0xfffffffffffffffc,%rsi ;*lsub {reexecute=0 rethrow=0 return_oop=0} | |
│ │ ; - dev.lucifer.Main::fibonacci@18 (line 16) | |
│ │ ; - dev.lucifer.Main::fibonacci@19 (line 16) | |
0.55% │ │ 0x00007fcc38c2bc4d: xchg %ax,%ax | |
│ │ 0x00007fcc38c2bc4f: call 0x00007fcc38c2bbc0 ; ImmutableOopMap {} | |
│ │ ;*invokestatic fibonacci {reexecute=0 rethrow=0 return_oop=0} | |
│ │ ; - dev.lucifer.Main::fibonacci@19 (line 16) | |
│ │ ; - dev.lucifer.Main::fibonacci@19 (line 16) | |
│ │ ; {static_call} | |
2.60% │ │ 0x00007fcc38c2bc54: add 0x8(%rsp),%rax ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
│ │ ; - dev.lucifer.Main::fibonacci@22 (line 16) | |
│ │ ; - dev.lucifer.Main::fibonacci@19 (line 16) | |
0.30% │ │╭ 0x00007fcc38c2bc59: jmp 0x00007fcc38c2bc5e | |
1.73% │ ↘│ 0x00007fcc38c2bc5b: mov %r10,%rax ;*invokestatic fibonacci {reexecute=0 rethrow=0 return_oop=0} | |
│ │ ; - dev.lucifer.Main::fibonacci@19 (line 16) | |
1.92% │ ↘ 0x00007fcc38c2bc5e: add %rbp,%rax ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.Main::fibonacci@22 (line 16) | |
0.05% │ ╭ 0x00007fcc38c2bc61: jmp 0x00007fcc38c2bc66 | |
1.56% ↘ │ 0x00007fcc38c2bc63: mov %rsi,%rax ;*ifgt {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.Main::fibonacci@3 (line 13) | |
6.83% ↘ 0x00007fcc38c2bc66: add $0x30,%rsp | |
1.59% 0x00007fcc38c2bc6a: pop %rbp | |
1.61% 0x00007fcc38c2bc6b: cmp 0x340(%r15),%rsp ; {poll_return} | |
0x00007fcc38c2bc72: ja 0x00007fcc38c2bc95 | |
8.21% 0x00007fcc38c2bc78: ret ;*invokestatic fibonacci {reexecute=0 rethrow=0 return_oop=0} | |
; - dev.lucifer.Main::fibonacci@11 (line 16) | |
; - dev.lucifer.Main::fibonacci@11 (line 16) | |
0x00007fcc38c2bc79: mov %rax,%rsi | |
0x00007fcc38c2bc7c: jmp 0x00007fcc38c2bc8b ;*invokestatic fibonacci {reexecute=0 rethrow=0 return_oop=0} | |
; - dev.lucifer.Main::fibonacci@11 (line 16) | |
; - dev.lucifer.Main::fibonacci@19 (line 16) | |
0x00007fcc38c2bc7e: mov %rax,%rsi | |
0x00007fcc38c2bc81: jmp 0x00007fcc38c2bc8b ;*invokestatic fibonacci {reexecute=0 rethrow=0 return_oop=0} | |
; - dev.lucifer.Main::fibonacci@19 (line 16) | |
; - dev.lucifer.Main::fibonacci@11 (line 16) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ran with -XX:LoopUnrollLimit=0 for easier to read assembely | |
Hottest code regions (>10.00% "cycles" events): | |
....[Hottest Region 1].............................................................................. | |
c2, level 4, dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 558 (101 bytes) | |
0x00007f7fe926c0a8: mov 0x40(%rsp),%r8 | |
0x00007f7fe926c0ad: movzbl 0x94(%r8),%r11d ; implicit exception: dispatches to 0x00007f7fe926c324 | |
;*getfield isDone {reexecute=0 rethrow=0 return_oop=0} | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@30 (line 188) | |
0x00007f7fe926c0b5: test %r11d,%r11d | |
0x00007f7fe926c0b8: jne 0x00007f7fe926c22e ;*ifeq {reexecute=0 rethrow=0 return_oop=0} | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@33 (line 188) | |
0x00007f7fe926c0be: mov $0x1,%ebx | |
0x00007f7fe926c0c3: jmp 0x00007f7fe926c1e9 | |
0x00007f7fe926c0c8: nopl 0x0(%rax,%rax,1) | |
16.73% ↗ 0x00007f7fe926c0d0: mov %rdi,%rcx | |
26.89% │ 0x00007f7fe926c0d3: mov %esi,%r11d | |
0.72% │ 0x00007f7fe926c0d6: mov %rdx,%rdi ;*lload {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@23 (line 60) | |
│ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.13% │ ↗ 0x00007f7fe926c0d9: mov %rdi,%rdx | |
19.77% │ │ 0x00007f7fe926c0dc: add %rcx,%rdx ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
│ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@33 (line 62) | |
│ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
15.86% │ │ 0x00007f7fe926c0df: mov %r11d,%esi | |
0.62% │ │ 0x00007f7fe926c0e2: inc %esi | |
0.19% │ │ 0x00007f7fe926c0e4: cmp %r8d,%esi | |
╰ │ 0x00007f7fe926c0e7: jl 0x00007f7fe926c0d0 ;*goto {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
│ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.03% │ 0x00007f7fe926c0e9: mov 0x348(%r15),%r8 | |
0.81% │ 0x00007f7fe926c0f0: movslq %r11d,%r11 | |
│ 0x00007f7fe926c0f3: add %rax,%r11 | |
│ 0x00007f7fe926c0f6: add $0x1,%r11 ; ImmutableOopMap {rbp=Oop r13=Oop [72]=Oop [80]=Oop } | |
│ ;*goto {reexecute=1 rethrow=0 return_oop=0} | |
│ ; - (reexecute) dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
│ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.01% │ 0x00007f7fe926c0fa: test %eax,(%r8) ;*goto {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
│ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
│ ; {poll} | |
0.78% │ 0x00007f7fe926c0fd: data16 xchg %ax,%ax | |
0.02% │ 0x00007f7fe926c100: cmp %r10d,%esi | |
╭│ 0x00007f7fe926c103: jge 0x00007f7fe926c132 | |
││ 0x00007f7fe926c105: mov %rdi,%rcx | |
││ 0x00007f7fe926c108: mov %rdx,%rdi | |
││ 0x00007f7fe926c10b: mov %esi,%r11d ;*lload {reexecute=0 rethrow=0 return_oop=0} | |
││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@23 (line 60) | |
││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.69% ││ 0x00007f7fe926c10e: mov %r10d,%r8d | |
0.01% ││ 0x00007f7fe926c111: sub %r11d,%r8d | |
0.04% ││ 0x00007f7fe926c114: xor %esi,%esi | |
││ 0x00007f7fe926c116: cmp %r11d,%r10d | |
0.76% ││ 0x00007f7fe926c119: cmovl %esi,%r8d | |
0.02% ││ 0x00007f7fe926c11d: cmp $0x3e8,%r8d | |
0.05% ││ 0x00007f7fe926c124: mov $0x3e8,%esi | |
0.01% ││ 0x00007f7fe926c129: cmova %esi,%r8d | |
0.72% ││ 0x00007f7fe926c12d: add %r11d,%r8d | |
0.04% │╰ 0x00007f7fe926c130: jmp 0x00007f7fe926c0d9 | |
↘ 0x00007f7fe926c132: mov %rbp,%r8 | |
0.01% 0x00007f7fe926c135: cmp %r9,%r11 | |
0x00007f7fe926c138: jge 0x00007f7fe926c1a7 | |
0x00007f7fe926c13e: add %rdx,%rdi ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@33 (line 62) | |
; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0x00007f7fe926c141: mov %r11,%r10 | |
0x00007f7fe926c144: add $0x1,%r10 ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@39 (line 59) | |
; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
.................................................................................................... | |
84.91% <total for region 1> | |
....[Hottest Regions]............................................................................... | |
84.91% c2, level 4 dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 558 (101 bytes) | |
9.27% c2, level 4 dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 558 (209 bytes) | |
3.08% c2, level 4 org.openjdk.jmh.infra.Blackhole::consumeFull, version 509 (55 bytes) | |
1.10% [kernel.kallsyms] [unknown] (0 bytes) | |
0.25% [kernel.kallsyms] [unknown] (37 bytes) | |
0.13% [kernel.kallsyms] [unknown] (0 bytes) | |
0.06% [kernel.kallsyms] [unknown] (33 bytes) | |
0.05% [kernel.kallsyms] [unknown] (1 bytes) | |
0.04% [kernel.kallsyms] [unknown] (30 bytes) | |
0.04% [kernel.kallsyms] [unknown] (35 bytes) | |
0.04% libjvm.so ElfSymbolTable::lookup (48 bytes) | |
0.04% libpthread-2.27.so __pthread_disable_asynccancel (0 bytes) | |
0.03% [kernel.kallsyms] [unknown] (30 bytes) | |
0.03% [kernel.kallsyms] [unknown] (6 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (3 bytes) | |
0.01% [kernel.kallsyms] [unknown] (0 bytes) | |
0.01% [kernel.kallsyms] [unknown] (6 bytes) | |
0.81% <...other 112 warm regions...> | |
.................................................................................................... | |
100.00% <totals> | |
....[Hottest Methods (after inlining)].............................................................. | |
94.18% c2, level 4 dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 558 | |
3.08% c2, level 4 org.openjdk.jmh.infra.Blackhole::consumeFull, version 509 | |
2.20% [kernel.kallsyms] [unknown] | |
0.22% libpthread-2.27.so __pthread_disable_asynccancel | |
0.04% libc-2.27.so __fprintf_chk | |
0.04% libjvm.so ElfSymbolTable::lookup | |
0.01% perf print_counters | |
0.01% perf avg_stats | |
0.01% libc-2.27.so __clock_gettime | |
0.01% libjvm.so defaultStream::write | |
0.01% perf update_stats | |
0.01% libc-2.27.so _IO_file_sync | |
0.01% interpreter new 187 new | |
0.01% perf perf_evsel__name | |
0.01% libjvm.so SymbolTable::do_lookup | |
0.01% libjvm.so ciMethodData::data_from | |
0.01% libjvm.so os::PlatformMonitor::wait | |
0.01% libc-2.27.so vfprintf | |
0.01% libjvm.so IRScope::max_stack | |
0.01% perf perf_evsel__read_counter | |
0.10% <...other 15 warm methods...> | |
.................................................................................................... | |
100.00% <totals> | |
....[Distribution by Source]........................................................................ | |
97.26% c2, level 4 | |
2.20% [kernel.kallsyms] | |
0.22% libpthread-2.27.so | |
0.11% libjvm.so | |
0.10% libc-2.27.so | |
0.07% perf | |
0.01% hsdis-amd64.so | |
0.01% interpreter | |
0.01% perf-19445.map | |
.................................................................................................... | |
100.00% <totals> | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate": | |
≈ 10⁻⁴ MB/sec | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate.norm": | |
≈ 10⁻⁶ B/op | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.count": | |
≈ 0 counts | |
# Run complete. Total time: 00:01:51 | |
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 (num) Mode Cnt Score Error Units | |
FibonacciBenchmark.benchmarkFibonacciIterative 45 avgt 5 35.436 ± 0.283 ns/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:CPI 45 avgt 0.279 clks/insn | |
FibonacciBenchmark.benchmarkFibonacciIterative:IPC 45 avgt 3.586 insns/clk | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-load-misses 45 avgt 0.006 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-loads 45 avgt 16.103 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-stores 45 avgt 5.096 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-icache-load-misses 45 avgt 0.024 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-load-misses 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-loads 45 avgt 0.002 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-store-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-stores 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:branch-misses 45 avgt 0.005 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:branches 45 avgt 54.999 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:cycles 45 avgt 126.827 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-load-misses 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-loads 45 avgt 16.086 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-store-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-stores 45 avgt 5.062 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:iTLB-load-misses 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:iTLB-loads 45 avgt 0.002 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:instructions 45 avgt 454.791 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:·asm 45 avgt NaN --- | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate 45 avgt 5 ≈ 10⁻⁴ MB/sec | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate.norm 45 avgt 5 ≈ 10⁻⁶ B/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.count 45 avgt 5 ≈ 0 counts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Hottest code regions (>10.00% "cycles" events): | |
....[Hottest Region 1].............................................................................. | |
c2, level 4, dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 545 (486 bytes) | |
0x00007ff6e526e549: movzbl 0x94(%r11),%r8d ; implicit exception: dispatches to 0x00007ff6e526e87c | |
;*getfield isDone {reexecute=0 rethrow=0 return_oop=0} | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@30 (line 188) | |
0x00007ff6e526e551: test %r8d,%r8d | |
╭ 0x00007ff6e526e554: jne 0x00007ff6e526e775 ;*ifeq {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@33 (line 188) | |
│ 0x00007ff6e526e55a: mov $0x1,%ebx | |
│ 0x00007ff6e526e55f: nop | |
│╭ 0x00007ff6e526e560: jmp 0x00007ff6e526e709 | |
││ 0x00007ff6e526e565: data16 data16 nopw 0x0(%rax,%rax,1) | |
1.85% ││↗ 0x00007ff6e526e570: mov %r11d,%esi ;*lload {reexecute=0 rethrow=0 return_oop=0} | |
│││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@23 (line 60) | |
│││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
2.78% │││ ↗ 0x00007ff6e526e573: add %rcx,%rdi | |
2.64% │││ │ 0x00007ff6e526e576: mov %rdi,%r11 | |
1.89% │││ │ 0x00007ff6e526e579: add %rcx,%r11 | |
1.89% │││ │ 0x00007ff6e526e57c: mov %r11,%rcx | |
2.92% │││ │ 0x00007ff6e526e57f: add %rdi,%rcx | |
2.75% │││ │ 0x00007ff6e526e582: mov %rcx,%rbx | |
2.06% │││ │ 0x00007ff6e526e585: add %r11,%rbx | |
2.38% │││ │ 0x00007ff6e526e588: mov %rbx,%r11 | |
3.58% │││ │ 0x00007ff6e526e58b: add %rcx,%r11 | |
3.26% │││ │ 0x00007ff6e526e58e: mov %r11,%rdx | |
2.34% │││ │ 0x00007ff6e526e591: add %rbx,%rdx | |
2.11% │││ │ 0x00007ff6e526e594: mov %rdx,%rdi | |
4.36% │││ │ 0x00007ff6e526e597: add %r11,%rdi | |
2.74% │││ │ 0x00007ff6e526e59a: mov %rdi,%rcx | |
2.01% │││ │ 0x00007ff6e526e59d: add %rdx,%rcx ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
│││ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@33 (line 62) | |
│││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
2.41% │││ │ 0x00007ff6e526e5a0: mov %esi,%r11d | |
2.72% │││ │ 0x00007ff6e526e5a3: add $0x8,%r11d | |
1.72% │││ │ 0x00007ff6e526e5a7: cmp %r8d,%r11d | |
││╰ │ 0x00007ff6e526e5aa: jl 0x00007ff6e526e570 ;*goto {reexecute=0 rethrow=0 return_oop=0} | |
││ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.16% ││ │ 0x00007ff6e526e5ac: mov 0x348(%r15),%r8 | |
0.57% ││ │ 0x00007ff6e526e5b3: movslq %esi,%rbx | |
0.92% ││ │ 0x00007ff6e526e5b6: add %rbp,%rbx | |
0.17% ││ │ 0x00007ff6e526e5b9: add $0x8,%rbx ; ImmutableOopMap {r14=Oop xmm0=Oop [72]=Oop [80]=Oop } | |
││ │ ;*goto {reexecute=1 rethrow=0 return_oop=0} | |
││ │ ; - (reexecute) dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.21% ││ │ 0x00007ff6e526e5bd: test %eax,(%r8) ;*goto {reexecute=0 rethrow=0 return_oop=0} | |
││ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
││ │ ; {poll} | |
0.67% ││ │ 0x00007ff6e526e5c0: cmp %r10d,%r11d | |
││ ╭│ 0x00007ff6e526e5c3: jge 0x00007ff6e526e5ee | |
││ ││ 0x00007ff6e526e5c5: mov %r11d,%esi | |
0.94% ││ ││ ↗ 0x00007ff6e526e5c8: mov %r10d,%r8d | |
0.17% ││ ││ │ 0x00007ff6e526e5cb: sub %esi,%r8d | |
0.22% ││ ││ │ 0x00007ff6e526e5ce: xor %r11d,%r11d | |
0.54% ││ ││ │ 0x00007ff6e526e5d1: cmp %esi,%r10d | |
0.71% ││ ││ │ 0x00007ff6e526e5d4: cmovl %r11d,%r8d | |
0.19% ││ ││ │ 0x00007ff6e526e5d8: cmp $0x1f40,%r8d | |
0.18% ││ ││ │ 0x00007ff6e526e5df: mov $0x1f40,%r11d | |
0.73% ││ ││ │ 0x00007ff6e526e5e5: cmova %r11d,%r8d | |
0.95% ││ ││ │ 0x00007ff6e526e5e9: add %esi,%r8d | |
0.20% ││ │╰ │ 0x00007ff6e526e5ec: jmp 0x00007ff6e526e573 | |
0.62% ││ ↘ │ 0x00007ff6e526e5ee: add $0x7,%esi | |
0.19% ││ │ ↗ 0x00007ff6e526e5f1: cmp %eax,%r11d | |
││ ╭ │ │ 0x00007ff6e526e5f4: jge 0x00007ff6e526e6a7 ;*lload {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@23 (line 60) | |
││ │ │ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ │ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.21% ││ │ ↗ │ │ 0x00007ff6e526e5fa: mov %rcx,%rdx | |
0.60% ││ │ │ │ │ 0x00007ff6e526e5fd: add %rdi,%rdx ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │ │ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@33 (line 62) | |
││ │ │ │ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ │ │ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.74% ││ │ │ │ │ 0x00007ff6e526e600: mov %r11d,%r10d | |
0.20% ││ │ │ │ │ 0x00007ff6e526e603: inc %r10d | |
0.13% ││ │ │ │ │ 0x00007ff6e526e606: cmp %eax,%r10d | |
││ │╭│ │ │ 0x00007ff6e526e609: jge 0x00007ff6e526e616 ;*ifgt {reexecute=0 rethrow=0 return_oop=0} | |
││ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@20 (line 59) | |
││ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │││ │ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
││ │││ │ │ 0x00007ff6e526e60b: mov %rcx,%rdi | |
││ │││ │ │ 0x00007ff6e526e60e: mov %rdx,%rcx | |
││ │││ │ │ 0x00007ff6e526e611: mov %r10d,%r11d | |
││ ││╰ │ │ 0x00007ff6e526e614: jmp 0x00007ff6e526e5fa | |
0.54% ││ │↘ │↗ │ 0x00007ff6e526e616: movslq %r11d,%r8 | |
0.69% ││ │ ││ │ 0x00007ff6e526e619: add %rbp,%r8 | |
0.32% ││ │ ││ │ 0x00007ff6e526e61c: add $0x1,%r8 | |
0.20% ││ │ ││↗ │ 0x00007ff6e526e620: cmp %r9,%r8 | |
││ │ ╭ │││ │ 0x00007ff6e526e623: jge 0x00007ff6e526e6bd | |
││ │ │ │││ │ 0x00007ff6e526e629: mov %rcx,%rdi | |
││ │ │ │││ │ 0x00007ff6e526e62c: add %rdx,%rdi ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │ │││ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@33 (line 62) | |
││ │ │ │││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ │ │││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
││ │ │ │││ │ 0x00007ff6e526e62f: mov %r8,%r10 | |
││ │ │ │││ │ 0x00007ff6e526e632: add $0x1,%r10 | |
││ │ │ │││ │ 0x00007ff6e526e636: mov %r8,%rbp | |
││ │ │ │││ │ 0x00007ff6e526e639: mov %r10,%r8 | |
││ │ │ │││ │ 0x00007ff6e526e63c: mov %rdx,%rcx ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │ │││ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@39 (line 59) | |
││ │ │ │││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ │ │││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.52% ││ │ │ │││ ↗ │ 0x00007ff6e526e63f: mov %r13,%r10 | |
0.79% ││ │ │ │││ │ │ 0x00007ff6e526e642: sub %rbp,%r10 ;*goto {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
││ │ │ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ │ │││ │ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.21% ││ │ │ │││ │ │ 0x00007ff6e526e645: mov 0x348(%r15),%r11 ; ImmutableOopMap {r14=Oop xmm0=Oop [72]=Oop [80]=Oop } | |
││ │ │ │││ │ │ ;*goto {reexecute=1 rethrow=0 return_oop=0} | |
││ │ │ │││ │ │ ; - (reexecute) dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
││ │ │ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ │ │││ │ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.16% ││ │ │ │││ │ │ 0x00007ff6e526e64c: test %eax,(%r11) ;*goto {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
││ │ │ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ │ │││ │ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
││ │ │ │││ │ │ ; {poll} | |
0.62% ││ │ │ │││ │ │ 0x00007ff6e526e64f: add $0x1,%r10 | |
0.77% ││ │ │ │││ │ │ 0x00007ff6e526e653: xor %r11d,%r11d | |
0.17% ││ │ │ │││ │ │ 0x00007ff6e526e656: cmp %rbp,%r9 | |
0.17% ││ │ │ │││ │ │ 0x00007ff6e526e659: cmovl %r11,%r10 | |
0.57% ││ │ │ │││ │ │ 0x00007ff6e526e65d: cmp $0x7ffffffd,%r10 | |
0.75% ││ │ │ │││ │ │ 0x00007ff6e526e664: mov $0x7ffffffd,%r11d | |
0.19% ││ │ │ │││ │ │ 0x00007ff6e526e66a: cmova %r11,%r10 | |
0.73% ││ │ │ │││ │ │ 0x00007ff6e526e66e: mov %r10d,%eax | |
0.78% ││ │ │ │││ │ │ 0x00007ff6e526e671: cmp $0x1,%eax | |
││ │ │╭ │││ │ │ 0x00007ff6e526e674: jle 0x00007ff6e526e6b5 ;*ifgt {reexecute=0 rethrow=0 return_oop=0} | |
││ │ ││ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@20 (line 59) | |
││ │ ││ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ ││ │││ │ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.20% ││ │ ││ │││ │ │ 0x00007ff6e526e676: add %rdi,%rcx ;*ladd {reexecute=0 rethrow=0 return_oop=0} | |
││ │ ││ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@33 (line 62) | |
││ │ ││ │││ │ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ ││ │││ │ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.17% ││ │ ││ │││ │ │ 0x00007ff6e526e679: mov %eax,%r10d | |
0.55% ││ │ ││ │││ │ │ 0x00007ff6e526e67c: add $0xfffffff9,%r10d | |
0.65% ││ │ ││ │││ │ │ 0x00007ff6e526e680: mov %eax,%r11d | |
0.31% ││ │ ││ │││ │ │ 0x00007ff6e526e683: dec %r11d | |
0.15% ││ │ ││ │││ │ │ 0x00007ff6e526e686: cmp %r10d,%r11d | |
0.52% ││ │ ││ │││ │ │ 0x00007ff6e526e689: mov $0x80000000,%r8d | |
0.85% ││ │ ││ │││ │ │ 0x00007ff6e526e68f: cmovl %r8d,%r10d | |
0.17% ││ │ ││ │││ │ │ 0x00007ff6e526e693: cmp $0x2,%r10d | |
││ │ ││╭│││ │ │ 0x00007ff6e526e697: jle 0x00007ff6e526e765 | |
0.17% ││ │ ││││││ │ │ 0x00007ff6e526e69d: mov $0x2,%esi | |
0.48% ││ │ │││╰││ │ │ 0x00007ff6e526e6a2: jmp 0x00007ff6e526e5c8 | |
││ ↘ │││ ││ │ │ 0x00007ff6e526e6a7: mov %rcx,%rdx | |
││ │││ ││ │ │ 0x00007ff6e526e6aa: mov %esi,%r11d | |
││ │││ ││ │ │ 0x00007ff6e526e6ad: mov %rdi,%rcx | |
││ │││ ╰│ │ │ 0x00007ff6e526e6b0: jmp 0x00007ff6e526e616 | |
││ │↘│ │ │ │ 0x00007ff6e526e6b5: mov %rdi,%rdx | |
││ │ │ ╰ │ │ 0x00007ff6e526e6b8: jmp 0x00007ff6e526e620 | |
0.59% ││ ↘ │ │ │ 0x00007ff6e526e6bd: mov %r14,%r10 | |
0.79% ││ │ │ │ 0x00007ff6e526e6c0: vmovq %xmm0,%r11 | |
0.27% ││ │ │ │ 0x00007ff6e526e6c5: vmovq %xmm1,%rbx ;*ifgt {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@20 (line 59) | |
││ │ │ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ │ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.17% ││ │ │↗│ 0x00007ff6e526e6ca: mov %rbx,(%rsp) | |
0.56% ││ │ │││ 0x00007ff6e526e6ce: mov %r11,0x40(%rsp) | |
0.89% ││ │ │││ 0x00007ff6e526e6d3: mov %r10,%rbp | |
0.23% ││ │ │││ 0x00007ff6e526e6d6: mov 0x50(%rsp),%rsi | |
0.17% ││ │ │││ 0x00007ff6e526e6db: call 0x00007ff6dd7bea80 ; ImmutableOopMap {rbp=Oop [64]=Oop [72]=Oop [80]=Oop } | |
││ │ │││ ;*invokespecial consumeFull {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │││ ; - org.openjdk.jmh.infra.Blackhole::consume@15 (line 395) | |
││ │ │││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@20 (line 186) | |
││ │ │││ ; {optimized virtual_call} | |
1.02% ││ │ │││ 0x00007ff6e526e6e0: mov 0x40(%rsp),%r11 | |
1.10% ││ │ │││ 0x00007ff6e526e6e5: movzbl 0x94(%r11),%r10d ;*goto {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
││ │ │││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ │││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.22% ││ │ │││ 0x00007ff6e526e6ed: mov 0x348(%r15),%r8 | |
0.47% ││ │ │││ 0x00007ff6e526e6f4: mov (%rsp),%rbx | |
0.75% ││ │ │││ 0x00007ff6e526e6f8: add $0x1,%rbx ; ImmutableOopMap {r11=Oop rbp=Oop [72]=Oop [80]=Oop } | |
││ │ │││ ;*ifeq {reexecute=1 rethrow=0 return_oop=0} | |
││ │ │││ ; - (reexecute) dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@33 (line 188) | |
0.28% ││ │ │││ 0x00007ff6e526e6fc: test %eax,(%r8) ; {poll} | |
0.19% ││ │ │││ 0x00007ff6e526e6ff: nop | |
0.66% ││ │ │││ 0x00007ff6e526e700: test %r10d,%r10d | |
││ │ ╭ │││ 0x00007ff6e526e703: jne 0x00007ff6e526e77a ;*aload_1 {reexecute=0 rethrow=0 return_oop=0} | |
││ │ │ │││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@36 (line 189) | |
0.87% │↘ │ │ │││ 0x00007ff6e526e709: mov %rbp,%r10 | |
0.17% │ │ │ │││ 0x00007ff6e526e70c: mov 0x10(%rbp),%r13 ;*getfield num {reexecute=0 rethrow=0 return_oop=0} | |
│ │ │ │││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@1 (line 79) | |
│ │ │ │││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.12% │ │ │ │││ 0x00007ff6e526e710: cmp $0x3,%r13 | |
│ │ │╭│││ 0x00007ff6e526e714: jl 0x00007ff6e526e75b ;*ifgt {reexecute=0 rethrow=0 return_oop=0} | |
│ │ │││││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@20 (line 59) | |
│ │ │││││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│ │ │││││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.62% │ │ │││││ 0x00007ff6e526e716: data16 nopw 0x0(%rax,%rax,1) | |
0.72% │ │ │││││ 0x00007ff6e526e720: cmp $0x7ffffffe,%r13 | |
│ │ │││││ 0x00007ff6e526e727: jg 0x00007ff6e526e7b8 | |
0.33% │ │ │││││ 0x00007ff6e526e72d: mov %r13,%r9 | |
0.22% │ │ │││││ 0x00007ff6e526e730: add $0x1,%r9 | |
0.63% │ │ │││││ 0x00007ff6e526e734: mov $0x1,%ecx | |
0.77% │ │ │││││ 0x00007ff6e526e739: mov $0x2,%edi | |
0.23% │ │ │││││ 0x00007ff6e526e73e: mov $0x3,%ebp | |
0.20% │ │ │││││ 0x00007ff6e526e743: mov $0x4,%r8d | |
0.53% │ │ │││││ 0x00007ff6e526e749: mov %r10,%r14 | |
0.92% │ │ │││││ 0x00007ff6e526e74c: vmovq %r11,%xmm0 | |
0.11% │ │ │││││ 0x00007ff6e526e751: vmovq %rbx,%xmm1 | |
0.15% │ │ ││╰││ 0x00007ff6e526e756: jmp 0x00007ff6e526e63f | |
│ │ │↘ ││ 0x00007ff6e526e75b: mov $0x1,%edx | |
│ │ │ ╰│ 0x00007ff6e526e760: jmp 0x00007ff6e526e6ca | |
│ ↘ │ │ 0x00007ff6e526e765: mov $0x2,%r11d | |
│ │ │ 0x00007ff6e526e76b: mov $0x1,%esi | |
│ │ ╰ 0x00007ff6e526e770: jmp 0x00007ff6e526e5f1 | |
↘ │ 0x00007ff6e526e775: mov $0x1,%ebx ;*aload_1 {reexecute=0 rethrow=0 return_oop=0} | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@36 (line 189) | |
↘ 0x00007ff6e526e77a: nopw 0x0(%rax,%rax,1) | |
0x00007ff6e526e780: movabs $0x7ff6fae511e0,%r10 | |
0x00007ff6e526e78a: call *%r10 ;*invokestatic nanoTime {reexecute=0 rethrow=0 return_oop=0} | |
.................................................................................................... | |
85.98% <total for region 1> | |
....[Hottest Regions]............................................................................... | |
85.98% c2, level 4 dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 545 (486 bytes) | |
7.67% c2, level 4 org.openjdk.jmh.infra.Blackhole::consumeFull, version 500 (55 bytes) | |
3.53% [kernel.kallsyms] [unknown] (6 bytes) | |
0.34% [kernel.kallsyms] [unknown] (45 bytes) | |
0.33% [kernel.kallsyms] [unknown] (1 bytes) | |
0.09% [kernel.kallsyms] [unknown] (1 bytes) | |
0.06% libjvm.so ElfSymbolTable::lookup (40 bytes) | |
0.06% [kernel.kallsyms] [unknown] (58 bytes) | |
0.06% [kernel.kallsyms] [unknown] (7 bytes) | |
0.05% [kernel.kallsyms] [unknown] (6 bytes) | |
0.04% [kernel.kallsyms] [unknown] (3 bytes) | |
0.03% [kernel.kallsyms] [unknown] (42 bytes) | |
0.03% [kernel.kallsyms] [unknown] (11 bytes) | |
0.03% libc-2.27.so [unknown] (0 bytes) | |
0.03% libc-2.27.so __fprintf_chk (28 bytes) | |
0.02% [kernel.kallsyms] [unknown] (39 bytes) | |
0.02% [kernel.kallsyms] [unknown] (22 bytes) | |
0.02% [kernel.kallsyms] [unknown] (22 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (14 bytes) | |
1.55% <...other 169 warm regions...> | |
.................................................................................................... | |
99.99% <totals> | |
....[Hottest Methods (after inlining)].............................................................. | |
85.98% c2, level 4 dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 545 | |
7.67% c2, level 4 org.openjdk.jmh.infra.Blackhole::consumeFull, version 500 | |
5.30% [kernel.kallsyms] [unknown] | |
0.22% libc-2.27.so vfprintf | |
0.06% libjvm.so ElfSymbolTable::lookup | |
0.06% libc-2.27.so [unknown] | |
0.05% libc-2.27.so __fprintf_chk | |
0.05% libpthread-2.27.so pthread_cond_timedwait@@GLIBC_2.3.2 | |
0.03% libc-2.27.so __clock_gettime | |
0.02% libc-2.27.so _IO_padn | |
0.02% libjvm.so xmlStream::begin_head | |
0.02% perf print_counters | |
0.02% libjvm.so fileStream::write | |
0.02% hsdis-amd64.so print_insn | |
0.02% libjvm.so PeriodicTask::real_time_tick | |
0.02% libjvm.so xmlStream::write_text | |
0.02% ld-2.27.so __tls_get_addr | |
0.02% perf eprintf | |
0.02% libpthread-2.27.so __condvar_cancel_waiting | |
0.02% perf update_stats | |
0.35% <...other 42 warm methods...> | |
.................................................................................................... | |
99.99% <totals> | |
....[Distribution by Source]........................................................................ | |
93.66% c2, level 4 | |
5.30% [kernel.kallsyms] | |
0.41% libc-2.27.so | |
0.28% libjvm.so | |
0.11% perf | |
0.09% libpthread-2.27.so | |
0.05% interpreter | |
0.03% hsdis-amd64.so | |
0.02% c1, level 3 | |
0.02% ld-2.27.so | |
0.01% [vdso] | |
0.01% perf-22722.map | |
.................................................................................................... | |
99.99% <totals> | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate": | |
≈ 10⁻⁴ MB/sec | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate.norm": | |
≈ 10⁻⁶ B/op | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.count": | |
≈ 0 counts | |
# Run complete. Total time: 00:01:51 | |
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 (num) Mode Cnt Score Error Units | |
FibonacciBenchmark.benchmarkFibonacciIterative 45 avgt 5 15.048 ± 0.045 ns/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:CPI 45 avgt 0.265 clks/insn | |
FibonacciBenchmark.benchmarkFibonacciIterative:IPC 45 avgt 3.768 insns/clk | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-load-misses 45 avgt 0.006 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-loads 45 avgt 16.017 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-stores 45 avgt 5.004 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-icache-load-misses 45 avgt 0.011 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-load-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-loads 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-store-misses 45 avgt ≈ 10⁻⁵ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-stores 45 avgt ≈ 10⁻³ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:branch-misses 45 avgt 0.002 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:branches 45 avgt 20.958 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:cycles 45 avgt 53.942 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-load-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-loads 45 avgt 16.042 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-store-misses 45 avgt ≈ 10⁻⁶ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-stores 45 avgt 5.039 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:iTLB-load-misses 45 avgt ≈ 10⁻⁵ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:iTLB-loads 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:instructions 45 avgt 203.266 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:·asm 45 avgt NaN --- | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate 45 avgt 5 ≈ 10⁻⁴ MB/sec | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate.norm 45 avgt 5 ≈ 10⁻⁶ B/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.count 45 avgt 5 ≈ 0 counts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# ran with -XX:LoopUnrollLimit=0 | |
Hottest code regions (>10.00% "cycles" events): | |
....[Hottest Region 1].............................................................................. | |
C2, level 4, dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 529 (96 bytes) | |
0x00007f6e7d227790: mov 0x38(%rsp),%r10 | |
0x00007f6e7d227795: movzbl 0x94(%r10),%r10d ;*getfield isDone | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@30 (line 188) | |
; implicit exception: dispatches to 0x00007f6e7d2278a5 | |
0x00007f6e7d22779d: test %r10d,%r10d | |
╭ 0x00007f6e7d2277a0: jne 0x00007f6e7d227819 ;*ifeq | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@33 (line 188) | |
│ 0x00007f6e7d2277a6: mov $0x1,%ebp | |
│╭ 0x00007f6e7d2277ab: jmp 0x00007f6e7d2277f0 | |
││ 0x00007f6e7d2277ad: data16 xchg %ax,%ax | |
10.65% ││↗ 0x00007f6e7d2277b0: mov %rdx,%r9 | |
10.84% │││ 0x00007f6e7d2277b3: add %r11,%r9 ;*ladd | |
│││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@33 (line 62) | |
│││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
9.92% │││ 0x00007f6e7d2277b6: add $0x1,%r8 ;*ladd | |
│││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@39 (line 59) | |
│││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
10.81% │││ 0x00007f6e7d2277ba: mov %rdx,%r11 | |
10.78% │││ 0x00007f6e7d2277bd: mov %r9,%rdx ; OopMap{[48]=Oop [56]=Oop [64]=Oop [0]=Oop off=192} | |
│││ ;*goto | |
│││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
│││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
10.95% │││ ↗ 0x00007f6e7d2277c0: test %eax,0x1703883a(%rip) # 0x00007f6e94260000 | |
│││ │ ;*goto | |
│││ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
│││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
│││ │ ; {poll} | |
12.92% │││ │ 0x00007f6e7d2277c6: cmp %r10,%r8 | |
││╰ │ 0x00007f6e7d2277c9: jle 0x00007f6e7d2277b0 ;*ifgt | |
││ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@20 (line 59) | |
││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.02% ││ │↗ 0x00007f6e7d2277cb: mov (%rsp),%rsi | |
0.02% ││ ││ 0x00007f6e7d2277cf: call 0x00007f6e7d045de0 ; OopMap{[48]=Oop [56]=Oop [64]=Oop [0]=Oop off=212} | |
││ ││ ;*invokespecial consumeFull | |
││ ││ ; - org.openjdk.jmh.infra.Blackhole::consume@15 (line 395) | |
││ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@20 (line 186) | |
││ ││ ; {optimized virtual_call} | |
9.48% ││ ││ 0x00007f6e7d2277d4: mov 0x38(%rsp),%r10 | |
0.04% ││ ││ 0x00007f6e7d2277d9: movzbl 0x94(%r10),%r11d ;*getfield isDone | |
││ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@30 (line 188) | |
0.01% ││ ││ 0x00007f6e7d2277e1: add $0x1,%rbp ; OopMap{[48]=Oop [56]=Oop [64]=Oop [0]=Oop off=229} | |
││ ││ ;*ifeq | |
││ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@33 (line 188) | |
1.04% ││ ││ 0x00007f6e7d2277e5: test %eax,0x17038815(%rip) # 0x00007f6e94260000 | |
││ ││ ; {poll} | |
││ ││ 0x00007f6e7d2277eb: test %r11d,%r11d | |
││ ╭ ││ 0x00007f6e7d2277ee: jne 0x00007f6e7d22781e ;*aload | |
││ │ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@13 (line 186) | |
│↘ │ ││ 0x00007f6e7d2277f0: mov 0x40(%rsp),%r10 | |
│ │ ││ 0x00007f6e7d2277f5: mov 0x10(%r10),%r10 ;*getfield num | |
│ │ ││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@1 (line 79) | |
│ │ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
1.16% │ │ ││ 0x00007f6e7d2277f9: cmp $0x3,%r10 | |
│ │╭││ 0x00007f6e7d2277fd: jl 0x00007f6e7d227812 ;*ifgt | |
│ ││││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@20 (line 59) | |
│ ││││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│ ││││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.30% │ ││││ 0x00007f6e7d2277ff: mov $0x1,%r11d | |
0.01% │ ││││ 0x00007f6e7d227805: mov $0x2,%edx | |
│ ││││ 0x00007f6e7d22780a: mov $0x4,%r8d | |
0.86% │ ││╰│ 0x00007f6e7d227810: jmp 0x00007f6e7d2277c0 | |
│ │↘ │ 0x00007f6e7d227812: mov $0x1,%edx | |
│ │ ╰ 0x00007f6e7d227817: jmp 0x00007f6e7d2277cb | |
↘ │ 0x00007f6e7d227819: mov $0x1,%ebp ;*aload_1 | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@36 (line 189) | |
↘ 0x00007f6e7d22781e: movabs $0x7f6e92f26dc0,%r10 | |
0x00007f6e7d227828: call *%r10 ;*invokestatic nanoTime | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@37 (line 189) | |
0x00007f6e7d22782b: mov 0x30(%rsp),%r10 | |
0x00007f6e7d227830: mov %rax,0x30(%r10) ;*putfield stopTime | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@40 (line 189) | |
.................................................................................................... | |
89.79% <total for region 1> | |
....[Hottest Regions]............................................................................... | |
89.79% C2, level 4 dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 529 (96 bytes) | |
4.24% [kernel.kallsyms] [unknown] (6 bytes) | |
4.12% C2, level 4 org.openjdk.jmh.infra.Blackhole::consumeFull, version 506 (51 bytes) | |
0.22% [kernel.kallsyms] [unknown] (60 bytes) | |
0.13% [kernel.kallsyms] [unknown] (0 bytes) | |
0.05% [kernel.kallsyms] [unknown] (26 bytes) | |
0.05% libpthread-2.27.so __libc_write (4 bytes) | |
0.04% [kernel.kallsyms] [unknown] (1 bytes) | |
0.04% [kernel.kallsyms] [unknown] (24 bytes) | |
0.04% [kernel.kallsyms] [unknown] (6 bytes) | |
0.03% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (21 bytes) | |
0.02% libc-2.27.so _IO_file_xsputn (33 bytes) | |
0.02% [kernel.kallsyms] [unknown] (6 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (23 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% libjvm.so RelocIterator::initialize (41 bytes) | |
1.06% <...other 151 warm regions...> | |
.................................................................................................... | |
99.99% <totals> | |
....[Hottest Methods (after inlining)].............................................................. | |
89.79% C2, level 4 dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 529 | |
5.49% [kernel.kallsyms] [unknown] | |
4.12% C2, level 4 org.openjdk.jmh.infra.Blackhole::consumeFull, version 506 | |
0.20% libpthread-2.27.so __libc_write | |
0.04% libc-2.27.so __fprintf_chk | |
0.04% libc-2.27.so _IO_file_xsputn | |
0.03% libc-2.27.so vsnprintf | |
0.02% libjvm.so RelocIterator::initialize | |
0.01% libpthread-2.27.so __libc_read | |
0.01% libc-2.27.so vfprintf | |
0.01% perf ltrim | |
0.01% libc-2.27.so [unknown] | |
0.01% libc-2.27.so _IO_default_xsputn | |
0.01% libjvm.so decode_env::handle_event | |
0.01% libc-2.27.so __clock_gettime | |
0.01% libjvm.so outputStream::do_vsnprintf | |
0.01% libc-2.27.so __printf_fp | |
0.01% perf update_stats | |
0.01% perf read_counters | |
0.01% libjvm.so Monitor::IWait | |
0.13% <...other 21 warm methods...> | |
.................................................................................................... | |
99.99% <totals> | |
....[Distribution by Source]........................................................................ | |
93.91% C2, level 4 | |
5.49% [kernel.kallsyms] | |
0.22% libpthread-2.27.so | |
0.19% libc-2.27.so | |
0.10% libjvm.so | |
0.06% perf | |
0.02% hsdis-amd64.so | |
0.01% | |
.................................................................................................... | |
99.99% <totals> | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate": | |
≈ 10⁻⁴ MB/sec | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate.norm": | |
≈ 10⁻⁶ B/op | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.count": | |
≈ 0 counts | |
# Run complete. Total time: 00:01:52 | |
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 (num) Mode Cnt Score Error Units | |
FibonacciBenchmark.benchmarkFibonacciIterative 45 avgt 5 26.566 ± 0.462 ns/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:CPI 45 avgt 0.257 clks/insn | |
FibonacciBenchmark.benchmarkFibonacciIterative:IPC 45 avgt 3.887 insns/clk | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-load-misses 45 avgt 0.004 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-loads 45 avgt 53.931 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-stores 45 avgt 3.022 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-icache-load-misses 45 avgt 0.011 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-load-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-loads 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-store-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-stores 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:branch-misses 45 avgt 0.003 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:branches 45 avgt 48.836 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:cycles 45 avgt 94.507 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-load-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-loads 45 avgt 53.837 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-store-misses 45 avgt ≈ 10⁻⁵ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-stores 45 avgt 3.028 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:iTLB-load-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:iTLB-loads 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:instructions 45 avgt 367.340 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:·asm 45 avgt NaN --- | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate 45 avgt 5 ≈ 10⁻⁴ MB/sec | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate.norm 45 avgt 5 ≈ 10⁻⁶ B/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.count 45 avgt 5 ≈ 0 counts |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Hottest code regions (>10.00% "cycles" events): | |
....[Hottest Region 1].............................................................................. | |
C2, level 4, dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 533 (96 bytes) | |
0x00007f4230dffd50: mov 0x38(%rsp),%r10 | |
0x00007f4230dffd55: movzbl 0x94(%r10),%r10d ;*getfield isDone | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@30 (line 188) | |
; implicit exception: dispatches to 0x00007f4230dffe65 | |
0x00007f4230dffd5d: test %r10d,%r10d | |
╭ 0x00007f4230dffd60: jne 0x00007f4230dffdd9 ;*ifeq | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@33 (line 188) | |
│ 0x00007f4230dffd66: mov $0x1,%ebp | |
│╭ 0x00007f4230dffd6b: jmp 0x00007f4230dffdb0 | |
││ 0x00007f4230dffd6d: data16 xchg %ax,%ax | |
11.13% ││↗ 0x00007f4230dffd70: mov %rdx,%r9 | |
11.51% │││ 0x00007f4230dffd73: add %r11,%r9 ;*ladd | |
│││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@33 (line 62) | |
│││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
10.04% │││ 0x00007f4230dffd76: add $0x1,%r8 ;*ladd | |
│││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@39 (line 59) | |
│││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
11.52% │││ 0x00007f4230dffd7a: mov %rdx,%r11 | |
10.95% │││ 0x00007f4230dffd7d: mov %r9,%rdx ; OopMap{[48]=Oop [56]=Oop [64]=Oop [0]=Oop off=192} | |
│││ ;*goto | |
│││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
│││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
11.37% │││ ↗ 0x00007f4230dffd80: test %eax,0x1608127a(%rip) # 0x00007f4246e81000 | |
│││ │ ;*goto | |
│││ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@42 (line 59) | |
│││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
│││ │ ; {poll} | |
13.47% │││ │ 0x00007f4230dffd86: cmp %r10,%r8 | |
││╰ │ 0x00007f4230dffd89: jle 0x00007f4230dffd70 ;*ifgt | |
││ │ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@20 (line 59) | |
││ │ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
││ │ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.03% ││ │↗ 0x00007f4230dffd8b: mov (%rsp),%rsi | |
0.05% ││ ││ 0x00007f4230dffd8f: call 0x00007f4230c17de0 ; OopMap{[48]=Oop [56]=Oop [64]=Oop [0]=Oop off=212} | |
││ ││ ;*invokespecial consumeFull | |
││ ││ ; - org.openjdk.jmh.infra.Blackhole::consume@15 (line 395) | |
││ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@20 (line 186) | |
││ ││ ; {optimized virtual_call} | |
9.67% ││ ││ 0x00007f4230dffd94: mov 0x38(%rsp),%r10 | |
0.04% ││ ││ 0x00007f4230dffd99: movzbl 0x94(%r10),%r11d ;*getfield isDone | |
││ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@30 (line 188) | |
││ ││ 0x00007f4230dffda1: add $0x1,%rbp ; OopMap{[48]=Oop [56]=Oop [64]=Oop [0]=Oop off=229} | |
││ ││ ;*ifeq | |
││ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@33 (line 188) | |
0.89% ││ ││ 0x00007f4230dffda5: test %eax,0x16081255(%rip) # 0x00007f4246e81000 | |
││ ││ ; {poll} | |
││ ││ 0x00007f4230dffdab: test %r11d,%r11d | |
││ ╭ ││ 0x00007f4230dffdae: jne 0x00007f4230dffdde ;*aload | |
││ │ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@13 (line 186) | |
│↘ │ ││ 0x00007f4230dffdb0: mov 0x40(%rsp),%r10 | |
│ │ ││ 0x00007f4230dffdb5: mov 0x10(%r10),%r10 ;*getfield num | |
│ │ ││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@1 (line 79) | |
│ │ ││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
1.38% │ │ ││ 0x00007f4230dffdb9: cmp $0x3,%r10 | |
│ │╭││ 0x00007f4230dffdbd: jl 0x00007f4230dffdd2 ;*ifgt | |
│ ││││ ; - dev.lucifer.FibonacciBenchmark::fibonacciIterative@20 (line 59) | |
│ ││││ ; - dev.lucifer.FibonacciBenchmark::benchmarkFibonacciIterative@4 (line 79) | |
│ ││││ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@17 (line 186) | |
0.39% │ ││││ 0x00007f4230dffdbf: mov $0x1,%r11d | |
0.01% │ ││││ 0x00007f4230dffdc5: mov $0x2,%edx | |
│ ││││ 0x00007f4230dffdca: mov $0x4,%r8d | |
0.84% │ ││╰│ 0x00007f4230dffdd0: jmp 0x00007f4230dffd80 | |
│ │↘ │ 0x00007f4230dffdd2: mov $0x1,%edx | |
│ │ ╰ 0x00007f4230dffdd7: jmp 0x00007f4230dffd8b | |
↘ │ 0x00007f4230dffdd9: mov $0x1,%ebp ;*aload_1 | |
│ ; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@36 (line 189) | |
↘ 0x00007f4230dffdde: movabs $0x7f4245b47dc0,%r10 | |
0x00007f4230dffde8: call *%r10 ;*invokestatic nanoTime | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@37 (line 189) | |
0x00007f4230dffdeb: mov 0x30(%rsp),%r10 | |
0x00007f4230dffdf0: mov %rax,0x30(%r10) ;*putfield stopTime | |
; - dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub@40 (line 189) | |
.................................................................................................... | |
93.27% <total for region 1> | |
....[Hottest Regions]............................................................................... | |
93.27% C2, level 4 dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 533 (96 bytes) | |
4.51% C2, level 4 org.openjdk.jmh.infra.Blackhole::consumeFull, version 510 (51 bytes) | |
0.24% [kernel.kallsyms] [unknown] (6 bytes) | |
0.22% [kernel.kallsyms] [unknown] (37 bytes) | |
0.17% [kernel.kallsyms] [unknown] (0 bytes) | |
0.09% [kernel.kallsyms] [unknown] (17 bytes) | |
0.08% libc-2.27.so [unknown] (0 bytes) | |
0.06% [kernel.kallsyms] [unknown] (7 bytes) | |
0.04% [kernel.kallsyms] [unknown] (0 bytes) | |
0.04% [kernel.kallsyms] [unknown] (20 bytes) | |
0.04% [kernel.kallsyms] [unknown] (28 bytes) | |
0.04% libc-2.27.so __fprintf_chk (25 bytes) | |
0.03% [kernel.kallsyms] [unknown] (0 bytes) | |
0.03% libc-2.27.so [unknown] (6 bytes) | |
0.03% libc-2.27.so [unknown] (49 bytes) | |
0.03% libc-2.27.so __fprintf_chk (30 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
0.02% [kernel.kallsyms] [unknown] (0 bytes) | |
1.01% <...other 99 warm regions...> | |
.................................................................................................... | |
99.99% <totals> | |
....[Hottest Methods (after inlining)].............................................................. | |
93.27% C2, level 4 dev.lucifer.jmh_generated.FibonacciBenchmark_benchmarkFibonacciIterative_jmhTest::benchmarkFibonacciIterative_avgt_jmhStub, version 533 | |
4.51% C2, level 4 org.openjdk.jmh.infra.Blackhole::consumeFull, version 510 | |
1.46% [kernel.kallsyms] [unknown] | |
0.37% libc-2.27.so [unknown] | |
0.16% libc-2.27.so __fprintf_chk | |
0.02% hsdis-amd64.so print_insn | |
0.02% perf process_interval | |
0.02% libjvm.so RelocIterator::initialize | |
0.01% libjvm.so xmlStream::write | |
0.01% libpthread-2.27.so __libc_read | |
0.01% perf print_counters | |
0.01% libc-2.27.so vfprintf | |
0.01% libjvm.so fileStream::write | |
0.01% perf perf_evsel__read_counter | |
0.01% libjvm.so ScopeDesc::sender | |
0.01% libc-2.27.so _IO_padn | |
0.01% libc-2.27.so _IO_default_xsputn | |
0.01% perf __perf_evsel_stat__is | |
0.01% libc-2.27.so fputc | |
0.01% libc-2.27.so _IO_fflush | |
0.06% <...other 6 warm methods...> | |
.................................................................................................... | |
99.99% <totals> | |
....[Distribution by Source]........................................................................ | |
97.79% C2, level 4 | |
1.46% [kernel.kallsyms] | |
0.60% libc-2.27.so | |
0.06% perf | |
0.05% libjvm.so | |
0.02% libpthread-2.27.so | |
0.02% hsdis-amd64.so | |
.................................................................................................... | |
99.99% <totals> | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate": | |
≈ 10⁻⁴ MB/sec | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate.norm": | |
≈ 10⁻⁶ B/op | |
Secondary result "dev.lucifer.FibonacciBenchmark.benchmarkFibonacciIterative:·gc.count": | |
≈ 0 counts | |
# Run complete. Total time: 00:01:52 | |
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 (num) Mode Cnt Score Error Units | |
FibonacciBenchmark.benchmarkFibonacciIterative 45 avgt 5 26.552 ± 0.331 ns/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:CPI 45 avgt 0.258 clks/insn | |
FibonacciBenchmark.benchmarkFibonacciIterative:IPC 45 avgt 3.882 insns/clk | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-load-misses 45 avgt 0.004 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-loads 45 avgt 53.763 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-dcache-stores 45 avgt 3.018 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:L1-icache-load-misses 45 avgt 0.010 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-load-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-loads 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-store-misses 45 avgt ≈ 10⁻⁵ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:LLC-stores 45 avgt 0.001 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:branch-misses 45 avgt 0.003 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:branches 45 avgt 48.757 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:cycles 45 avgt 94.599 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-load-misses 45 avgt ≈ 10⁻⁴ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-loads 45 avgt 53.915 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-store-misses 45 avgt ≈ 10⁻⁵ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:dTLB-stores 45 avgt 3.035 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:iTLB-load-misses 45 avgt ≈ 10⁻⁵ #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:iTLB-loads 45 avgt 0.002 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:instructions 45 avgt 367.205 #/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:·asm 45 avgt NaN --- | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate 45 avgt 5 ≈ 10⁻⁴ MB/sec | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.alloc.rate.norm 45 avgt 5 ≈ 10⁻⁶ B/op | |
FibonacciBenchmark.benchmarkFibonacciIterative:·gc.count 45 avgt 5 ≈ 0 counts |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment