Created
August 10, 2016 00:48
-
-
Save apangin/7c62fa1384b41500487d6f6f12d2d65f to your computer and use it in GitHub Desktop.
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
package bench; | |
import com.google.common.collect.ImmutableMap; | |
import org.openjdk.jmh.annotations.Benchmark; | |
import org.openjdk.jmh.annotations.Scope; | |
import org.openjdk.jmh.annotations.State; | |
@State(Scope.Benchmark) | |
public class Requirements { | |
private static boolean enabled = true; | |
private String name = "name"; | |
private String value = "value"; | |
@Benchmark | |
public Object assertMethod() { | |
if (enabled) { | |
return requireThat(value, name); | |
} | |
return null; | |
} | |
@Benchmark | |
public Object requireMethod() { | |
return requireThat(value, name); | |
} | |
public static Object requireThat(String parameter, String name) { | |
if (name.trim().isEmpty()) | |
throw new IllegalArgumentException(); | |
return new StringRequirementsImpl(parameter, name, new Configuration(ImmutableMap.of())); | |
} | |
static class Configuration { | |
private Object context; | |
public Configuration(Object context) { | |
this.context = context; | |
} | |
} | |
static class StringRequirementsImpl { | |
private String parameter; | |
private String name; | |
private Configuration config; | |
private ObjectRequirementsImpl asObject; | |
public StringRequirementsImpl(String parameter, String name, Configuration config) { | |
this.parameter = parameter; | |
this.name = name; | |
this.config = config; | |
this.asObject = new ObjectRequirementsImpl(parameter, name, config); | |
} | |
} | |
static class ObjectRequirementsImpl { | |
private Object parameter; | |
private String name; | |
private Configuration config; | |
ObjectRequirementsImpl(Object parameter, String name, Configuration config) { | |
this.parameter = parameter; | |
this.name = name; | |
this.config = config; | |
} | |
} | |
} |
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, bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub, version 114 (533 bytes) | |
0x000000000276cbb8: mov 0xa0(%rsp),%rbx | |
0x000000000276cbc0: movzbl 0x94(%rbx),%r11d ;*getfield isDone | |
; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@30 (line 183) | |
; implicit exception: dispatches to 0x000000000276d2f9 | |
0x000000000276cbc8: test %r11d,%r11d | |
0x000000000276cbcb: jne 0x000000000276ce4d ;*ifeq | |
; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@33 (line 183) | |
0x000000000276cbd1: mov $0x1,%ebp | |
╭ 0x000000000276cbd6: jmpq 0x000000000276cc81 | |
│ 0x000000000276cbdb: nopl 0x0(%rax,%rax,1) | |
0,20% │↗ 0x000000000276cbe0: mov %r11,0x60(%r15) | |
0,36% ││ 0x000000000276cbe4: prefetchnta 0xc0(%r11) | |
1,39% ││ 0x000000000276cbec: mov 0x40(%rsp),%r10 | |
0,78% ││ 0x000000000276cbf1: mov 0xa8(%r10),%r10 | |
0,37% ││ 0x000000000276cbf8: mov %r10,(%rax) | |
1,15% ││ 0x000000000276cbfb: movl $0x2001a0f2,0x8(%rax) ; {metadata('bench/Requirements$ObjectRequirementsImpl')} | |
1,46% ││ 0x000000000276cc02: mov %r12d,0xc(%rax) | |
1,23% ││ 0x000000000276cc06: mov %r12,0x10(%rax) ;*new ; - bench.Requirements$StringRequirementsImpl::<init>@20 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::assertMethod@14 (line 18) | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,40% ││ 0x000000000276cc0a: mov 0x5c(%rsp),%r11d | |
0,42% ││ 0x000000000276cc0f: mov %r11d,0xc(%rax) ;*putfield parameter | |
││ ; - bench.Requirements$ObjectRequirementsImpl::<init>@6 (line 62) | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@27 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::assertMethod@14 (line 18) | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
1,54% ││ 0x000000000276cc13: mov %ebp,0x14(%rax) ;*putfield config | |
││ ; - bench.Requirements$ObjectRequirementsImpl::<init>@16 (line 64) | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@27 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::assertMethod@14 (line 18) | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
1,15% ││ 0x000000000276cc16: mov 0x58(%rsp),%ebp | |
0,04% ││ 0x000000000276cc1a: mov %ebp,0x10(%rax) ;*putfield name | |
││ ; - bench.Requirements$ObjectRequirementsImpl::<init>@11 (line 63) | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@27 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::assertMethod@14 (line 18) | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
1,17% ││ 0x000000000276cc1d: mov 0x60(%rsp),%r8 | |
0,59% ││ 0x000000000276cc22: mov %r8,%r11 | |
0,57% ││ 0x000000000276cc25: mov %rax,%r10 | |
0,02% ││ 0x000000000276cc28: mov %r10d,0x18(%r8) ;*putfield asObject | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@30 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::assertMethod@14 (line 18) | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
3,71% ││ 0x000000000276cc2c: shr $0x9,%r11 | |
0,37% ││ 0x000000000276cc30: mov %rax,%r10 | |
0,29% ││ 0x000000000276cc33: shr $0x9,%r10 | |
0,02% ││ 0x000000000276cc37: mov $0x5291000,%r8d | |
1,52% ││ 0x000000000276cc3d: mov %r12b,(%r8,%r10,1) ;*putfield name | |
││ ; - bench.Requirements$ObjectRequirementsImpl::<init>@11 (line 63) | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@27 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::assertMethod@14 (line 18) | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,70% ││ 0x000000000276cc41: mov $0x5291000,%r10d | |
0,01% ││ 0x000000000276cc47: mov %r12b,(%r10,%r11,1) ;*invokevirtual assertMethod | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
2,07% ││ 0x000000000276cc4b: mov 0x28(%rsp),%rdx | |
0,54% ││ 0x000000000276cc50: mov 0x60(%rsp),%r8 | |
0,07% ││ 0x000000000276cc55: xchg %ax,%ax | |
1,36% ││ 0x000000000276cc57: callq 0x00000000027061a0 ; OopMap{[176]=Oop [40]=Oop [48]=Oop [72]=Oop off=700} | |
││ ;*invokevirtual consume | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@20 (line 181) | |
││ ; {optimized virtual_call} | |
0,50% ││ 0x000000000276cc5c: mov 0x48(%rsp),%rbx | |
1,45% ││ 0x000000000276cc61: movzbl 0x94(%rbx),%r10d ;*getfield isDone | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@30 (line 183) | |
0,53% ││ 0x000000000276cc69: mov 0x50(%rsp),%rbp | |
0,55% ││ 0x000000000276cc6e: add $0x1,%rbp ; OopMap{rbx=Oop [176]=Oop [40]=Oop [48]=Oop off=722} | |
││ ;*ifeq | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@33 (line 183) | |
0,94% ││ 0x000000000276cc72: test %eax,-0x3ecc78(%rip) # 0x0000000002380000 | |
││ ; {poll} | |
0,42% ││ 0x000000000276cc78: test %r10d,%r10d | |
0,00% ││ 0x000000000276cc7b: jne 0x000000000276ce52 ;*aload | |
││ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@13 (line 181) | |
0,28% ↘│ 0x000000000276cc81: movabs $0x85e089a8,%r10 ; {oop(a 'java/lang/Class' = 'bench/Requirements')} | |
0,58% │ 0x000000000276cc8b: movzbl 0x68(%r10),%r11d ;*getstatic enabled | |
│ ; - bench.Requirements::assertMethod@0 (line 17) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,94% │ 0x000000000276cc90: test %r11d,%r11d | |
│ 0x000000000276cc93: je 0x000000000276cf45 ;*ifeq | |
│ ; - bench.Requirements::assertMethod@3 (line 17) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,41% │ 0x000000000276cc99: mov 0x30(%rsp),%r8 | |
0,46% │ 0x000000000276cc9e: mov 0xc(%r8),%r10d ;*getfield name | |
│ ; - bench.Requirements::assertMethod@11 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,95% │ 0x000000000276cca2: mov 0xc(%r10),%ecx ;*getfield value | |
│ ; - java.lang.String::trim@1 (line 2868) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
│ ; implicit exception: dispatches to 0x000000000276d2bd | |
3,14% │ 0x000000000276cca6: mov 0xc(%rcx),%r9d ;*arraylength | |
│ ; - java.lang.String::trim@4 (line 2868) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
│ ; implicit exception: dispatches to 0x000000000276d2c9 | |
6,85% │ 0x000000000276ccaa: mov 0x10(%r8),%r11d ;*getfield value | |
│ ; - bench.Requirements::assertMethod@7 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,06% │ 0x000000000276ccae: test %r9d,%r9d | |
│ 0x000000000276ccb1: jle 0x000000000276cf05 ;*if_icmpge | |
│ ; - java.lang.String::trim@15 (line 2872) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
2,14% │ 0x000000000276ccb7: test %r9d,%r9d | |
│ 0x000000000276ccba: jbe 0x000000000276cec5 | |
1,96% │ 0x000000000276ccc0: mov %r11d,0x5c(%rsp) | |
0,05% │ 0x000000000276ccc5: mov %r10d,0x58(%rsp) | |
0,04% │ 0x000000000276ccca: mov %rbp,0x50(%rsp) | |
0,20% │ 0x000000000276cccf: mov %rbx,0x48(%rsp) | |
1,77% │ 0x000000000276ccd4: movzwl 0x10(%rcx),%r10d ;*caload | |
│ ; - java.lang.String::trim@20 (line 2872) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,12% │ 0x000000000276ccd9: cmp $0x20,%r10d | |
│ 0x000000000276ccdd: jle 0x000000000276cf6d ;*if_icmpgt | |
│ ; - java.lang.String::trim@23 (line 2872) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,15% │ 0x000000000276cce3: mov %r9d,%r8d | |
0,12% │ 0x000000000276cce6: dec %r8d ;*isub | |
│ ; - java.lang.String::trim@40 (line 2875) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
1,80% │ 0x000000000276cce9: cmp %r9d,%r8d | |
│ 0x000000000276ccec: jae 0x000000000276ce82 | |
0,04% │ 0x000000000276ccf2: movzwl 0xe(%rcx,%r9,2),%r8d ;*caload | |
│ ; - java.lang.String::trim@41 (line 2875) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
4,39% │ 0x000000000276ccf8: cmp $0x20,%r8d | |
0,01% │ 0x000000000276ccfc: jle 0x000000000276cfad ;*if_icmpgt | |
│ ; - java.lang.String::trim@44 (line 2875) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
2,20% │ 0x000000000276cd02: test %r9d,%r9d | |
│ 0x000000000276cd05: je 0x000000000276cff1 ;*ifne | |
│ ; - java.lang.String::isEmpty@5 (line 635) | |
│ ; - bench.Requirements::requireThat@4 (line 29) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,04% │ 0x000000000276cd0b: mov 0x60(%r15),%rax | |
0,06% │ 0x000000000276cd0f: mov %rax,%r10 | |
0,05% │ 0x000000000276cd12: add $0x20,%r10 | |
1,92% │ 0x000000000276cd16: mov 0x58(%rsp),%ebp | |
0,29% │ 0x000000000276cd1a: mov %rbp,%r11 ;*getfield name | |
│ ; - bench.Requirements::assertMethod@11 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,03% │ 0x000000000276cd1d: mov %r11,0x70(%rsp) | |
0,06% │ 0x000000000276cd22: cmp 0x70(%r15),%r10 | |
0,00% │ 0x000000000276cd26: jae 0x000000000276ce35 | |
1,97% │ 0x000000000276cd2c: mov %r10,0x60(%r15) | |
0,04% │ 0x000000000276cd30: prefetchnta 0xc0(%r10) | |
0,17% │ 0x000000000276cd38: mov 0x20(%rsp),%r10 | |
0,05% │ 0x000000000276cd3d: mov 0xa8(%r10),%r10 | |
2,26% │ 0x000000000276cd44: mov %r10,(%rax) | |
0,13% │ 0x000000000276cd47: movl $0x20019ac3,0x8(%rax) ; {metadata('bench/Requirements$StringRequirementsImpl')} | |
0,09% │ 0x000000000276cd4e: mov %r12d,0xc(%rax) | |
0,03% │ 0x000000000276cd52: mov %r12,0x10(%rax) | |
2,28% │ 0x000000000276cd56: mov %r12,0x18(%rax) ;*new ; - bench.Requirements::requireThat@18 (line 31) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,12% │ 0x000000000276cd5a: mov %rax,0x60(%rsp) | |
0,05% │ 0x000000000276cd5f: mov 0x60(%r15),%rax | |
0,10% │ 0x000000000276cd63: mov %rax,%r10 | |
2,04% │ 0x000000000276cd66: add $0x10,%r10 | |
0,14% │ 0x000000000276cd6a: cmp 0x70(%r15),%r10 | |
│ 0x000000000276cd6e: jae 0x000000000276ce19 | |
0,13% │ 0x000000000276cd74: mov %r10,0x60(%r15) | |
0,09% │ 0x000000000276cd78: prefetchnta 0xc0(%r10) | |
2,38% │ 0x000000000276cd80: mov 0x38(%rsp),%r10 | |
0,12% │ 0x000000000276cd85: mov 0xa8(%r10),%r10 | |
0,24% │ 0x000000000276cd8c: mov %r10,(%rax) | |
0,99% │ 0x000000000276cd8f: movl $0x20019b02,0x8(%rax) ; {metadata('bench/Requirements$Configuration')} | |
1,97% │ 0x000000000276cd96: movl $0x85e08a18,0xc(%rax) ;*new | |
│ ; - bench.Requirements::requireThat@24 (line 31) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
│ ; {oop(a 'com/google/common/collect/EmptyImmutableBiMap')} | |
0,47% │ 0x000000000276cd9d: mov %rax,%r10 | |
0,01% │ 0x000000000276cda0: mov 0x60(%rsp),%r11 | |
0,26% │ 0x000000000276cda5: mov 0x58(%rsp),%ebp | |
1,63% │ 0x000000000276cda9: mov %ebp,0x10(%r11) ;*putfield name | |
│ ; - bench.Requirements$StringRequirementsImpl::<init>@11 (line 50) | |
│ ; - bench.Requirements::requireThat@34 (line 31) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
1,63% │ 0x000000000276cdad: mov 0x5c(%rsp),%ebp | |
0,04% │ 0x000000000276cdb1: mov %ebp,0xc(%r11) ;*putfield parameter | |
│ ; - bench.Requirements$StringRequirementsImpl::<init>@6 (line 49) | |
│ ; - bench.Requirements::requireThat@34 (line 31) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
1,32% │ 0x000000000276cdb5: mov %rax,%rbp | |
1,04% │ 0x000000000276cdb8: mov %ebp,0x14(%r11) ;*putfield config | |
│ ; - bench.Requirements$StringRequirementsImpl::<init>@16 (line 51) | |
│ ; - bench.Requirements::requireThat@34 (line 31) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,94% │ 0x000000000276cdbc: mov %rax,%r8 | |
0,01% │ 0x000000000276cdbf: shr $0x9,%r11 | |
0,45% │ 0x000000000276cdc3: shr $0x9,%r8 | |
0,90% │ 0x000000000276cdc7: mov $0x5291000,%r9d | |
0,73% │ 0x000000000276cdcd: mov %r12b,(%r9,%r8,1) ;*putfield context | |
│ ; - bench.Requirements$Configuration::<init>@6 (line 38) | |
│ ; - bench.Requirements::requireThat@31 (line 31) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,50% │ 0x000000000276cdd1: mov $0x5291000,%r8d | |
0,99% │ 0x000000000276cdd7: mov %r12b,(%r8,%r11,1) ;*putfield parameter | |
│ ; - bench.Requirements$StringRequirementsImpl::<init>@6 (line 49) | |
│ ; - bench.Requirements::requireThat@34 (line 31) | |
│ ; - bench.Requirements::assertMethod@14 (line 18) | |
│ ; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0,77% │ 0x000000000276cddb: mov 0x60(%r15),%rax | |
0,60% │ 0x000000000276cddf: mov %rax,%r11 | |
0,84% │ 0x000000000276cde2: add $0x18,%r11 | |
0,75% │ 0x000000000276cde6: cmp 0x70(%r15),%r11 | |
╰ 0x000000000276cdea: jb 0x000000000276cbe0 ;*putfield config | |
; - bench.Requirements$StringRequirementsImpl::<init>@16 (line 51) | |
; - bench.Requirements::requireThat@34 (line 31) | |
; - bench.Requirements::assertMethod@14 (line 18) | |
; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
0x000000000276cdf0: rex.W pushq 0x70(%rsp) | |
0,00% 0x000000000276cdf5: rex.W popq 0xa0(%rsp) | |
0x000000000276cdfd: mov %r10,0xa8(%rsp) | |
0x000000000276ce05: movabs $0x1000d0790,%rdx ; {metadata('bench/Requirements$ObjectRequirementsImpl')} | |
0x000000000276ce0f: callq 0x000000000272c920 ; OopMap{rbp=NarrowOop [160]=Oop [168]=Oop [176]=Oop [40]=Oop [48]=Oop [72]=Oop [88]=NarrowOop [92]=NarrowOop [96]=Oop off=1140} | |
;*new ; - bench.Requirements$StringRequirementsImpl::<init>@20 (line 52) | |
; - bench.Requirements::requireThat@34 (line 31) | |
; - bench.Requirements::assertMethod@14 (line 18) | |
; - bench.generated.Requirements_assertMethod_jmhTest::assertMethod_avgt_jmhStub@17 (line 181) | |
; {runtime_call} | |
0x000000000276ce14: jmpq 0x000000000276cc0a ;*new | |
; - bench.Requirements::requireThat@18 (line 31) | |
.................................................................................................... | |
88,34% <total for region 1> |
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, bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub, version 114 (512 bytes) | |
0x00000000028fd7c4: mov 0xa0(%rsp),%r11 | |
0x00000000028fd7cc: movzbl 0x94(%r11),%r10d ;*getfield isDone | |
; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@30 (line 183) | |
; implicit exception: dispatches to 0x00000000028fdeed | |
0x00000000028fd7d4: test %r10d,%r10d | |
0x00000000028fd7d7: jne 0x00000000028fda9e ;*ifeq | |
; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@33 (line 183) | |
0x00000000028fd7dd: mov $0x1,%ebp | |
╭ 0x00000000028fd7e2: jmpq 0x00000000028fd891 | |
│ 0x00000000028fd7e7: nopw 0x0(%rax,%rax,1) | |
0,56% │↗ 0x00000000028fd7f0: mov %r10,0x60(%r15) | |
0,02% ││ 0x00000000028fd7f4: prefetchnta 0xc0(%r10) | |
1,60% ││ 0x00000000028fd7fc: mov 0x40(%rsp),%r11 | |
0,51% ││ 0x00000000028fd801: mov 0xa8(%r11),%r10 | |
0,68% ││ 0x00000000028fd808: mov %r10,(%rax) | |
0,25% ││ 0x00000000028fd80b: movl $0x2001a0f2,0x8(%rax) ; {metadata('bench/Requirements$ObjectRequirementsImpl')} | |
1,16% ││ 0x00000000028fd812: mov %r12d,0xc(%rax) | |
0,53% ││ 0x00000000028fd816: mov %r12,0x10(%rax) ;*new ; - bench.Requirements$StringRequirementsImpl::<init>@20 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::requireMethod@8 (line 25) | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,34% ││ 0x00000000028fd81a: mov 0x5c(%rsp),%r11d | |
0,10% ││ 0x00000000028fd81f: mov %r11d,0xc(%rax) ;*putfield parameter | |
││ ; - bench.Requirements$ObjectRequirementsImpl::<init>@6 (line 62) | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@27 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::requireMethod@8 (line 25) | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
1,21% ││ 0x00000000028fd823: mov %ebp,0x14(%rax) ;*putfield config | |
││ ; - bench.Requirements$ObjectRequirementsImpl::<init>@16 (line 64) | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@27 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::requireMethod@8 (line 25) | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,51% ││ 0x00000000028fd826: mov 0x58(%rsp),%ebp | |
0,38% ││ 0x00000000028fd82a: mov %ebp,0x10(%rax) ;*putfield name | |
││ ; - bench.Requirements$ObjectRequirementsImpl::<init>@11 (line 63) | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@27 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::requireMethod@8 (line 25) | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,27% ││ 0x00000000028fd82d: mov 0x60(%rsp),%r10 | |
1,17% ││ 0x00000000028fd832: mov %r10,%r8 | |
0,34% ││ 0x00000000028fd835: mov %rax,%r11 | |
0,22% ││ 0x00000000028fd838: mov %r11d,0x18(%r10) ;*putfield asObject | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@30 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::requireMethod@8 (line 25) | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
2,29% ││ 0x00000000028fd83c: shr $0x9,%r8 | |
0,81% ││ 0x00000000028fd840: mov %rax,%r10 | |
0,13% ││ 0x00000000028fd843: shr $0x9,%r10 | |
0,12% ││ 0x00000000028fd847: mov $0x5421000,%r11d | |
1,02% ││ 0x00000000028fd84d: mov %r12b,(%r11,%r10,1) ;*putfield name | |
││ ; - bench.Requirements$ObjectRequirementsImpl::<init>@11 (line 63) | |
││ ; - bench.Requirements$StringRequirementsImpl::<init>@27 (line 52) | |
││ ; - bench.Requirements::requireThat@34 (line 31) | |
││ ; - bench.Requirements::requireMethod@8 (line 25) | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,99% ││ 0x00000000028fd851: mov $0x5421000,%r10d | |
0,16% ││ 0x00000000028fd857: mov %r12b,(%r10,%r8,1) ;*invokevirtual requireMethod | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
1,75% ││ 0x00000000028fd85b: mov 0x28(%rsp),%rdx | |
0,40% ││ 0x00000000028fd860: mov 0x60(%rsp),%r8 | |
0,16% ││ 0x00000000028fd865: xchg %ax,%ax | |
0,98% ││ 0x00000000028fd867: callq 0x00000000028961a0 ; OopMap{[176]=Oop [32]=Oop [40]=Oop [72]=Oop off=684} | |
││ ;*invokevirtual consume | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@20 (line 181) | |
││ ; {optimized virtual_call} | |
0,96% ││ 0x00000000028fd86c: mov 0x48(%rsp),%r11 | |
1,07% ││ 0x00000000028fd871: movzbl 0x94(%r11),%r8d ;*getfield isDone | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@30 (line 183) | |
1,01% ││ 0x00000000028fd879: mov 0x50(%rsp),%rbp | |
0,92% ││ 0x00000000028fd87e: add $0x1,%rbp ; OopMap{r11=Oop [176]=Oop [32]=Oop [40]=Oop [72]=Oop off=706} | |
││ ;*ifeq | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@33 (line 183) | |
0,42% ││ 0x00000000028fd882: test %eax,-0x1bdd888(%rip) # 0x0000000000d20000 | |
││ ; {poll} | |
0,60% ││ 0x00000000028fd888: test %r8d,%r8d | |
││ 0x00000000028fd88b: jne 0x00000000028fdaa3 ;*aload | |
││ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@13 (line 181) | |
0,29% ↘│ 0x00000000028fd891: mov 0x20(%rsp),%rcx | |
0,86% │ 0x00000000028fd896: mov 0xc(%rcx),%r9d ;*getfield name | |
│ ; - bench.Requirements::requireMethod@5 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,75% │ 0x00000000028fd89a: mov 0xc(%r9),%r10d ;*getfield value | |
│ ; - java.lang.String::trim@1 (line 2868) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
│ ; implicit exception: dispatches to 0x00000000028fdeb1 | |
3,99% │ 0x00000000028fd89e: mov 0xc(%r10),%r8d ;*arraylength | |
│ ; - java.lang.String::trim@4 (line 2868) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
│ ; implicit exception: dispatches to 0x00000000028fdebd | |
8,35% │ 0x00000000028fd8a2: mov 0x10(%rcx),%edi ;*getfield value | |
│ ; - bench.Requirements::requireMethod@1 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,05% │ 0x00000000028fd8a5: test %r8d,%r8d | |
│ 0x00000000028fd8a8: jle 0x00000000028fdb45 ;*if_icmpge | |
│ ; - java.lang.String::trim@15 (line 2872) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
2,11% │ 0x00000000028fd8ae: test %r8d,%r8d | |
│ 0x00000000028fd8b1: jbe 0x00000000028fdb0d | |
1,69% │ 0x00000000028fd8b7: movzwl 0x10(%r10),%esi ;*caload | |
│ ; - java.lang.String::trim@20 (line 2872) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,06% │ 0x00000000028fd8bc: cmp $0x20,%esi | |
│ 0x00000000028fd8bf: jle 0x00000000028fdb7d ;*if_icmpgt | |
│ ; - java.lang.String::trim@23 (line 2872) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
1,85% │ 0x00000000028fd8c5: mov %r8d,%ebx | |
0,01% │ 0x00000000028fd8c8: dec %ebx ;*isub | |
│ ; - java.lang.String::trim@40 (line 2875) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,03% │ 0x00000000028fd8ca: cmp %r8d,%ebx | |
│ 0x00000000028fd8cd: jae 0x00000000028fdad3 | |
1,96% │ 0x00000000028fd8d3: movzwl 0xe(%r10,%r8,2),%esi ;*caload | |
│ ; - java.lang.String::trim@41 (line 2875) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
3,92% │ 0x00000000028fd8d9: cmp $0x20,%esi | |
0,00% │ 0x00000000028fd8dc: jle 0x00000000028fdbb9 ;*if_icmpgt | |
│ ; - java.lang.String::trim@44 (line 2875) | |
│ ; - bench.Requirements::requireThat@1 (line 29) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
1,83% │ 0x00000000028fd8e2: test %r8d,%r8d | |
│ 0x00000000028fd8e5: je 0x00000000028fdbf5 ;*ifne | |
│ ; - java.lang.String::isEmpty@5 (line 635) | |
│ ; - bench.Requirements::requireThat@4 (line 29) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,00% │ 0x00000000028fd8eb: mov 0x60(%r15),%rax | |
0,04% │ 0x00000000028fd8ef: mov %rax,%r10 | |
0,02% │ 0x00000000028fd8f2: add $0x20,%r10 | |
1,98% │ 0x00000000028fd8f6: mov %r9,%r8 ;*getfield name | |
│ ; - bench.Requirements::requireMethod@5 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,02% │ 0x00000000028fd8f9: mov %r8,0x70(%rsp) | |
0,01% │ 0x00000000028fd8fe: cmp 0x70(%r15),%r10 | |
│ 0x00000000028fd902: jae 0x00000000028fda4d | |
0,09% │ 0x00000000028fd908: mov %r10,0x60(%r15) | |
1,92% │ 0x00000000028fd90c: prefetchnta 0xc0(%r10) | |
0,10% │ 0x00000000028fd914: mov 0x30(%rsp),%r10 | |
0,04% │ 0x00000000028fd919: mov 0xa8(%r10),%r8 | |
0,26% │ 0x00000000028fd920: mov %r8,(%rax) | |
1,91% │ 0x00000000028fd923: movl $0x20019a85,0x8(%rax) ; {metadata('bench/Requirements$StringRequirementsImpl')} | |
0,05% │ 0x00000000028fd92a: mov %r12d,0xc(%rax) | |
0,05% │ 0x00000000028fd92e: mov %r12,0x10(%rax) | |
0,14% │ 0x00000000028fd932: mov %r12,0x18(%rax) | |
1,71% │ 0x00000000028fd936: mov %rax,%r8 ;*new ; - bench.Requirements::requireThat@18 (line 31) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,05% │ 0x00000000028fd939: mov 0x60(%r15),%rax | |
0,05% │ 0x00000000028fd93d: mov %rax,%rbx | |
0,10% │ 0x00000000028fd940: add $0x10,%rbx | |
1,98% │ 0x00000000028fd944: cmp 0x70(%r15),%rbx | |
│ 0x00000000028fd948: jae 0x00000000028fda15 | |
0,09% │ 0x00000000028fd94e: mov %rbx,0x60(%r15) | |
0,02% │ 0x00000000028fd952: prefetchnta 0xc0(%rbx) | |
0,35% │ 0x00000000028fd959: mov 0x38(%rsp),%rbx | |
2,03% │ 0x00000000028fd95e: mov 0xa8(%rbx),%rdx | |
0,14% │ 0x00000000028fd965: mov %rdx,(%rax) | |
0,15% │ 0x00000000028fd968: movl $0x20019b02,0x8(%rax) ; {metadata('bench/Requirements$Configuration')} | |
0,15% │ 0x00000000028fd96f: mov %rcx,0x20(%rsp) | |
1,84% │ 0x00000000028fd974: mov %r11,0x48(%rsp) | |
0,04% │ 0x00000000028fd979: mov %r10,0x30(%rsp) | |
0,08% │ 0x00000000028fd97e: mov %rbp,0x50(%rsp) | |
0,11% │ 0x00000000028fd983: mov %r9d,0x58(%rsp) | |
1,72% │ 0x00000000028fd988: mov %edi,0x5c(%rsp) | |
0,01% │ 0x00000000028fd98c: mov %r8,0x60(%rsp) | |
0,10% │ 0x00000000028fd991: movl $0x85e0a9a8,0xc(%rax) ;*new | |
│ ; - bench.Requirements::requireThat@24 (line 31) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
│ ; {oop(a 'com/google/common/collect/EmptyImmutableBiMap')} | |
0,14% │ 0x00000000028fd998: mov 0x60(%rsp),%r10 | |
1,89% │ 0x00000000028fd99d: mov 0x58(%rsp),%ebp | |
0,05% │ 0x00000000028fd9a1: mov %ebp,0x10(%r10) ;*putfield name | |
│ ; - bench.Requirements$StringRequirementsImpl::<init>@11 (line 50) | |
│ ; - bench.Requirements::requireThat@34 (line 31) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
8,13% │ 0x00000000028fd9a5: mov 0x5c(%rsp),%ebp | |
0,15% │ 0x00000000028fd9a9: mov %ebp,0xc(%r10) ;*putfield parameter | |
│ ; - bench.Requirements$StringRequirementsImpl::<init>@6 (line 49) | |
│ ; - bench.Requirements::requireThat@34 (line 31) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
1,23% │ 0x00000000028fd9ad: mov %rax,%rbp | |
0,01% │ 0x00000000028fd9b0: mov %rax,%r11 | |
1,30% │ 0x00000000028fd9b3: mov %ebp,0x14(%r10) ;*putfield config | |
│ ; - bench.Requirements$StringRequirementsImpl::<init>@16 (line 51) | |
│ ; - bench.Requirements::requireThat@34 (line 31) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,45% │ 0x00000000028fd9b7: mov %rax,%r8 | |
0,39% │ 0x00000000028fd9ba: shr $0x9,%r10 | |
0,01% │ 0x00000000028fd9be: shr $0x9,%r8 | |
1,30% │ 0x00000000028fd9c2: mov $0x5421000,%r9d | |
0,41% │ 0x00000000028fd9c8: mov %r12b,(%r9,%r8,1) ;*putfield context | |
│ ; - bench.Requirements$Configuration::<init>@6 (line 38) | |
│ ; - bench.Requirements::requireThat@31 (line 31) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,40% │ 0x00000000028fd9cc: mov $0x5421000,%r8d | |
1,27% │ 0x00000000028fd9d2: mov %r12b,(%r8,%r10,1) ;*putfield parameter | |
│ ; - bench.Requirements$StringRequirementsImpl::<init>@6 (line 49) | |
│ ; - bench.Requirements::requireThat@34 (line 31) | |
│ ; - bench.Requirements::requireMethod@8 (line 25) | |
│ ; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0,77% │ 0x00000000028fd9d6: mov 0x60(%r15),%rax | |
0,11% │ 0x00000000028fd9da: mov %rax,%r10 | |
1,22% │ 0x00000000028fd9dd: add $0x18,%r10 | |
0,40% │ 0x00000000028fd9e1: cmp 0x70(%r15),%r10 | |
╰ 0x00000000028fd9e5: jb 0x00000000028fd7f0 ;*putfield config | |
; - bench.Requirements$StringRequirementsImpl::<init>@16 (line 51) | |
; - bench.Requirements::requireThat@34 (line 31) | |
; - bench.Requirements::requireMethod@8 (line 25) | |
; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
0x00000000028fd9eb: rex.W pushq 0x70(%rsp) | |
0,00% 0x00000000028fd9f0: rex.W popq 0xa0(%rsp) | |
0x00000000028fd9f8: mov %r11,0xa8(%rsp) | |
0x00000000028fda00: movabs $0x1000d0790,%rdx ; {metadata('bench/Requirements$ObjectRequirementsImpl')} | |
0x00000000028fda0a: nop | |
0x00000000028fda0b: callq 0x00000000028bd6e0 ; OopMap{rbp=NarrowOop [160]=Oop [168]=Oop [176]=Oop [32]=Oop [40]=Oop [72]=Oop [88]=NarrowOop [92]=NarrowOop [96]=Oop off=1104} | |
;*new ; - bench.Requirements$StringRequirementsImpl::<init>@20 (line 52) | |
; - bench.Requirements::requireThat@34 (line 31) | |
; - bench.Requirements::requireMethod@8 (line 25) | |
; - bench.generated.Requirements_requireMethod_jmhTest::requireMethod_avgt_jmhStub@17 (line 181) | |
; {runtime_call} | |
0x00000000028fda10: jmpq 0x00000000028fd81a | |
.................................................................................................... | |
88,33% <total for region 1> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment