Skip to content

Instantly share code, notes, and snippets.

@apangin
Created August 10, 2016 00:48
Show Gist options
  • Save apangin/7c62fa1384b41500487d6f6f12d2d65f to your computer and use it in GitHub Desktop.
Save apangin/7c62fa1384b41500487d6f6f12d2d65f to your computer and use it in GitHub Desktop.
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;
}
}
}
....[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>
....[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(&apos;bench/Requirements$ObjectRequirementsImpl&apos;)}
1,16% ││ 0x00000000028fd812: mov %r12d,0xc(%rax)
0,53% ││ 0x00000000028fd816: mov %r12,0x10(%rax) ;*new ; - bench.Requirements$StringRequirementsImpl::&lt;init&gt;@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::&lt;init&gt;@6 (line 62)
││ ; - bench.Requirements$StringRequirementsImpl::&lt;init&gt;@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::&lt;init&gt;@16 (line 64)
││ ; - bench.Requirements$StringRequirementsImpl::&lt;init&gt;@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::&lt;init&gt;@11 (line 63)
││ ; - bench.Requirements$StringRequirementsImpl::&lt;init&gt;@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::&lt;init&gt;@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::&lt;init&gt;@11 (line 63)
││ ; - bench.Requirements$StringRequirementsImpl::&lt;init&gt;@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(&apos;bench/Requirements$StringRequirementsImpl&apos;)}
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(&apos;bench/Requirements$Configuration&apos;)}
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 &apos;com/google/common/collect/EmptyImmutableBiMap&apos;)}
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::&lt;init&gt;@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::&lt;init&gt;@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::&lt;init&gt;@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::&lt;init&gt;@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::&lt;init&gt;@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::&lt;init&gt;@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(&apos;bench/Requirements$ObjectRequirementsImpl&apos;)}
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::&lt;init&gt;@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