Filename | /Users/bpm/playground/Typed.github/Typed/fastest.pl |
Statements | Executed 2000058 statements in 4.13s |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1000000 | 1 | 1 | 7.83s | 46.2s | typed | main::
1000000 | 1 | 1 | 519ms | 519ms | Int (xsub) | is_Types::Standard::
1 | 1 | 1 | 4.46ms | 8.09ms | BEGIN@162 | main::
1 | 1 | 1 | 4.39ms | 11.9ms | BEGIN@116 | Foo::Moo::
1 | 1 | 1 | 4.11ms | 4.42ms | BEGIN@6 | main::
1 | 1 | 1 | 2.93ms | 2.96ms | BEGIN@4 | main::
191 | 1 | 1 | 2.69ms | 60.4ms | try {...} | Class::MOP::Attribute::
1 | 1 | 1 | 2.47ms | 525ms | BEGIN@91 | Foo::Moose::
1 | 1 | 1 | 1.85ms | 77.3ms | BEGIN@103 | Foo::Typed::
1489 | 22 | 18 | 1.64ms | 1.64ms | isa (xsub) | UNIVERSAL::
660 | 1 | 1 | 1.37ms | 10.3ms | around | Class::MOP::Class:::
1 | 1 | 1 | 1.32ms | 1.67ms | BEGIN@130 | Foo::Moo::QS::
1 | 1 | 1 | 1.24ms | 24.0ms | BEGIN@77 | Foo::Mouse::
788 | 35 | 21 | 1.16ms | 1.16ms | can (xsub) | UNIVERSAL::
97 | 1 | 1 | 938µs | 28.1ms | try {...} | Class::MOP::Method::Accessor::
124 | 1 | 1 | 789µs | 66.5ms | try {...} | Class::MOP::Class::
1 | 1 | 1 | 491µs | 542µs | BEGIN@3 | main::
1 | 1 | 1 | 395µs | 3.11ms | BEGIN@154 | Foo::Object::Tiny::XS::
1 | 1 | 1 | 374µs | 521µs | BEGIN@143 | Foo::Object::Tiny::
23 | 15 | 12 | 241µs | 241µs | VERSION (xsub) | UNIVERSAL::
31 | 1 | 1 | 115µs | 31.9ms | try {...} | Class::MOP::Method::Constructor::
1 | 1 | 1 | 88µs | 96µs | _generate_accessor (xsub) | Mouse::Meta::Method::Accessor::XS::
2 | 2 | 1 | 62µs | 10.9ms | has | Moo::
1 | 1 | 1 | 28µs | 28µs | CORE:print (opcode) | main::
2 | 1 | 1 | 26µs | 1.71ms | try {...} | Class::Load::
3 | 1 | 1 | 24µs | 1.28ms | try {...} | Moose::Meta::Method::Accessor::
3 | 1 | 1 | 20µs | 3.00ms | try {...} | Module::Implementation::
1 | 1 | 1 | 14µs | 236µs | try {...} | Moose::Meta::Method::Destructor::
6 | 1 | 1 | 11µs | 11µs | SvREADONLY (xsub) | Internals::
1 | 1 | 1 | 10µs | 50µs | BEGIN@53 | Foo::Manual::
1 | 1 | 1 | 10µs | 937µs | BEGIN@129 | Foo::Moo::QS::
1 | 1 | 1 | 6µs | 6µs | (bool (xsub) | version::
1 | 1 | 1 | 4µs | 4µs | (cmp (xsub) | version::
1 | 1 | 1 | 4µs | 4µs | new | Foo::Manual::NoChecks::
1 | 1 | 1 | 4µs | 4µs | BEGIN@8 | main::
1 | 1 | 1 | 3µs | 3µs | catch {...} | Module::Implementation::
1 | 1 | 1 | 2µs | 2µs | new | Foo::Manual::
1 | 1 | 1 | 900ns | 900ns | Str | Types::Standard::
1 | 1 | 1 | 900ns | 900ns | Value | Types::Standard::
1 | 1 | 1 | 800ns | 800ns | _generate_constructor (xsub) | Mouse::Meta::Method::Constructor::XS::
1 | 1 | 1 | 600ns | 600ns | _generate_destructor (xsub) | Mouse::Meta::Method::Destructor::XS::
0 | 0 | 0 | 0s | 0s | bar | Foo::Manual::NoChecks::
0 | 0 | 0 | 0s | 0s | bar | Foo::Manual::
0 | 0 | 0 | 0s | 0s | __ANON__[fastest.pl:117] | Foo::Moo::
0 | 0 | 0 | 0s | 0s | RUNTIME | main::
0 | 0 | 0 | 0s | 0s | hash | main::
0 | 0 | 0 | 0s | 0s | hash_nc | main::
0 | 0 | 0 | 0s | 0s | manual | main::
0 | 0 | 0 | 0s | 0s | manual_nc | main::
0 | 0 | 0 | 0s | 0s | moo | main::
0 | 0 | 0 | 0s | 0s | mooqs | main::
0 | 0 | 0 | 0s | 0s | moose | main::
0 | 0 | 0 | 0s | 0s | mouse | main::
0 | 0 | 0 | 0s | 0s | ot | main::
0 | 0 | 0 | 0s | 0s | otxs | main::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
0 | 2 | 5µs | Profile data that couldn't be associated with a specific line: # spent 3µs making 1 call to Mouse::Util::END
# spent 2µs making 1 call to Class::XSAccessor::END | ||
1 | 1 | 33µs | #!/usr/bin/env perl | ||
2 | |||||
3 | 2 | 422µs | 2 | 566µs | # spent 542µs (491+51) within main::BEGIN@3 which was called:
# once (491µs+51µs) by main::RUNTIME at line 3 # spent 542µs making 1 call to main::BEGIN@3
# spent 24µs making 1 call to strict::import |
4 | 2 | 2.79ms | 2 | 2.97ms | # spent 2.96ms (2.93+30µs) within main::BEGIN@4 which was called:
# once (2.93ms+30µs) by main::RUNTIME at line 4 # spent 2.96ms making 1 call to main::BEGIN@4
# spent 11µs making 1 call to warnings::import |
5 | |||||
6 | 2 | 118µs | 2 | 4.47ms | # spent 4.42ms (4.11+302µs) within main::BEGIN@6 which was called:
# once (4.11ms+302µs) by main::RUNTIME at line 6 # spent 4.42ms making 1 call to main::BEGIN@6
# spent 52µs making 1 call to Exporter::import |
7 | |||||
8 | 1 | 4µs | # spent 4µs within main::BEGIN@8 which was called:
# once (4µs+0s) by main::RUNTIME at line 11 | ||
9 | # uncomment to test pure Perl Mouse | ||||
10 | # $ENV{MOUSE_PUREPERL} = 1; | ||||
11 | 1 | 243µs | 1 | 4µs | } # spent 4µs making 1 call to main::BEGIN@8 |
12 | |||||
13 | # ...........hash............... | ||||
14 | |||||
15 | 1 | 1µs | my $hash = {}; | ||
16 | sub hash_nc { | ||||
17 | $hash->{bar} = 32; | ||||
18 | my $x = $hash->{bar}; | ||||
19 | } | ||||
20 | |||||
21 | |||||
22 | # ...........hash with check............... | ||||
23 | |||||
24 | 1 | 300ns | my $hash_check = {}; | ||
25 | sub hash { | ||||
26 | my $arg = 32; | ||||
27 | croak "we take an integer" unless defined $arg and $arg =~ /^[+-]?\d+$/; | ||||
28 | $hash_check->{bar} = $arg; | ||||
29 | my $x = $hash_check->{bar}; | ||||
30 | } | ||||
31 | |||||
32 | |||||
33 | # ...........by hand.............. | ||||
34 | { | ||||
35 | 1 | 500ns | package Foo::Manual::NoChecks; | ||
36 | 1 | 8µs | # spent 4µs within Foo::Manual::NoChecks::new which was called:
# once (4µs+0s) by main::RUNTIME at line 43 | ||
37 | sub bar { | ||||
38 | my $self = shift; | ||||
39 | return $self->{bar} unless @_; | ||||
40 | $self->{bar} = shift; | ||||
41 | } | ||||
42 | } | ||||
43 | 1 | 5µs | 1 | 4µs | my $manual_nc = Foo::Manual::NoChecks->new; # spent 4µs making 1 call to Foo::Manual::NoChecks::new |
44 | sub manual_nc { | ||||
45 | $manual_nc->bar(32); | ||||
46 | my $x = $manual_nc->bar; | ||||
47 | } | ||||
48 | |||||
49 | |||||
50 | # ...........by hand with checks.............. | ||||
51 | { | ||||
52 | 1 | 200ns | package Foo::Manual; | ||
53 | 2 | 193µs | 2 | 91µs | # spent 50µs (10+40) within Foo::Manual::BEGIN@53 which was called:
# once (10µs+40µs) by main::RUNTIME at line 53 # spent 50µs making 1 call to Foo::Manual::BEGIN@53
# spent 40µs making 1 call to Exporter::import |
54 | |||||
55 | 1 | 5µs | # spent 2µs within Foo::Manual::new which was called:
# once (2µs+0s) by main::RUNTIME at line 67 | ||
56 | sub bar { | ||||
57 | my $self = shift; | ||||
58 | if( @_ ) { | ||||
59 | # Simulate argument checking | ||||
60 | my $arg = shift; | ||||
61 | croak "we take an integer" unless defined $arg and $arg =~ /^[+-]?\d+$/; | ||||
62 | $self->{bar} = $arg; | ||||
63 | } | ||||
64 | return $self->{bar}; | ||||
65 | } | ||||
66 | } | ||||
67 | 1 | 3µs | 1 | 2µs | my $manual = Foo::Manual->new; # spent 2µs making 1 call to Foo::Manual::new |
68 | sub manual { | ||||
69 | $manual->bar(32); | ||||
70 | my $x = $manual->bar; | ||||
71 | } | ||||
72 | |||||
73 | |||||
74 | #.............Mouse............. | ||||
75 | { | ||||
76 | 1 | 200ns | package Foo::Mouse; | ||
77 | 2 | 210µs | 2 | 24.3ms | # spent 24.0ms (1.24+22.7) within Foo::Mouse::BEGIN@77 which was called:
# once (1.24ms+22.7ms) by main::RUNTIME at line 77 # spent 24.0ms making 1 call to Foo::Mouse::BEGIN@77
# spent 304µs making 1 call to Mouse::Exporter::do_import |
78 | 1 | 2µs | 1 | 324µs | has bar => (is => 'rw', isa => "Int"); # spent 324µs making 1 call to Mouse::has |
79 | 1 | 6µs | 2 | 116µs | __PACKAGE__->meta->make_immutable; # spent 106µs making 1 call to Mouse::Meta::Class::make_immutable
# spent 10µs making 1 call to Foo::Mouse::meta |
80 | } | ||||
81 | 1 | 53µs | 5 | 141µs | my $mouse = Foo::Mouse->new; # spent 92µs making 1 call to Mouse::Object::new
# spent 46µs making 1 call to Mouse::Meta::Class::_calculate_all_attributes
# spent 2µs making 1 call to Mouse::Meta::Class::strict_constructor
# spent 800ns making 1 call to Mouse::Meta::Class::is_immutable
# spent 600ns making 1 call to Mouse::Meta::Class::is_anon_class |
82 | sub mouse { | ||||
83 | $mouse->bar(32); | ||||
84 | my $x = $mouse->bar; | ||||
85 | } | ||||
86 | |||||
87 | |||||
88 | #............Moose............ | ||||
89 | { | ||||
90 | 1 | 400ns | package Foo::Moose; | ||
91 | 2 | 239µs | 2 | 531ms | # spent 525ms (2.47+523) within Foo::Moose::BEGIN@91 which was called:
# once (2.47ms+523ms) by main::RUNTIME at line 91 # spent 525ms making 1 call to Foo::Moose::BEGIN@91
# spent 5.77ms making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:519] |
92 | 1 | 2µs | 1 | 8.99ms | has bar => (is => 'rw', isa => "Int"); # spent 8.99ms making 1 call to Moose::has |
93 | 1 | 19µs | 2 | 29.6ms | __PACKAGE__->meta->make_immutable; # spent 29.6ms making 1 call to Class::MOP::Class::make_immutable
# spent 16µs making 1 call to Foo::Moose::meta |
94 | } | ||||
95 | 1 | 3µs | 1 | 12µs | my $moose = Foo::Moose->new; # spent 12µs making 1 call to Foo::Moose::new |
96 | sub moose { | ||||
97 | $moose->bar(32); | ||||
98 | my $x = $moose->bar; | ||||
99 | } | ||||
100 | |||||
101 | { | ||||
102 | 1 | 400ns | package Foo::Typed; | ||
103 | 2 | 236µs | 2 | 78.1ms | # spent 77.3ms (1.85+75.5) within Foo::Typed::BEGIN@103 which was called:
# once (1.85ms+75.5ms) by main::RUNTIME at line 103 # spent 77.3ms making 1 call to Foo::Typed::BEGIN@103
# spent 845µs making 1 call to Typed::import |
104 | 1 | 3µs | 1 | 39µs | has bar => (is => 'rw', isa => "Int"); # spent 39µs making 1 call to Typed::has |
105 | } | ||||
106 | 1 | 4µs | 1 | 40µs | my $typed = Foo::Typed->new; # spent 40µs making 1 call to Typed::new |
107 | # spent 46.2s (7.83+38.4) within main::typed which was called 1000000 times, avg 46µs/call:
# 1000000 times (7.83s+38.4s) by Benchmark::__ANON__[(eval 452)[/opt/perl-5.18.1/lib/5.18.1/Benchmark.pm:646]:1] at line 1 of (eval 451)[Benchmark.pm:646], avg 46µs/call | ||||
108 | 1000000 | 722ms | 1000000 | 36.7s | $typed->bar(32); # spent 36.7s making 1000000 calls to Typed::__ANON__[Typed.pm:134], avg 37µs/call |
109 | 1000000 | 3.41s | 1000000 | 1.74s | my $x = $typed->bar; # spent 1.74s making 1000000 calls to Typed::__ANON__[Typed.pm:134], avg 2µs/call |
110 | } | ||||
111 | |||||
112 | |||||
113 | #.............Moo........... | ||||
114 | { | ||||
115 | 1 | 300ns | package Foo::Moo; | ||
116 | 2 | 336µs | 2 | 14.3ms | # spent 11.9ms (4.39+7.47) within Foo::Moo::BEGIN@116 which was called:
# once (4.39ms+7.47ms) by main::RUNTIME at line 116 # spent 11.9ms making 1 call to Foo::Moo::BEGIN@116
# spent 2.39ms making 1 call to Moo::import |
117 | 1 | 5µs | 1 | 10.6ms | has bar => (is => 'rw', isa => sub { $_[0] =~ /^[+-]?\d+$/ }); # spent 10.6ms making 1 call to Moo::has |
118 | } | ||||
119 | 1 | 2µs | 1 | 759µs | my $moo = Foo::Moo->new; # spent 759µs making 1 call to Foo::Moo::new |
120 | sub moo { | ||||
121 | $moo->bar(32); | ||||
122 | my $x = $moo->bar; | ||||
123 | } | ||||
124 | |||||
125 | |||||
126 | #........... Moo using Sub::Quote.............. | ||||
127 | { | ||||
128 | 1 | 400ns | package Foo::Moo::QS; | ||
129 | 2 | 40µs | 2 | 1.87ms | # spent 937µs (10+928) within Foo::Moo::QS::BEGIN@129 which was called:
# once (10µs+928µs) by main::RUNTIME at line 129 # spent 937µs making 1 call to Foo::Moo::QS::BEGIN@129
# spent 928µs making 1 call to Moo::import |
130 | 2 | 217µs | 2 | 1.71ms | # spent 1.67ms (1.32+347µs) within Foo::Moo::QS::BEGIN@130 which was called:
# once (1.32ms+347µs) by main::RUNTIME at line 130 # spent 1.67ms making 1 call to Foo::Moo::QS::BEGIN@130
# spent 42µs making 1 call to Exporter::import |
131 | 1 | 4µs | 2 | 359µs | has bar => (is => 'rw', isa => quote_sub q{ $_[0] =~ /^[+-]?\d+$/ }); # spent 334µs making 1 call to Moo::has
# spent 25µs making 1 call to Sub::Quote::quote_sub |
132 | } | ||||
133 | 1 | 2µs | 1 | 741µs | my $mooqs = Foo::Moo::QS->new; # spent 741µs making 1 call to Foo::Moo::QS::new |
134 | sub mooqs { | ||||
135 | $mooqs->bar(32); | ||||
136 | my $x = $mooqs->bar; | ||||
137 | } | ||||
138 | |||||
139 | |||||
140 | #............Object::Tiny.............. | ||||
141 | { | ||||
142 | 1 | 500ns | package Foo::Object::Tiny; | ||
143 | 2 | 189µs | 2 | 615µs | # spent 521µs (374+147) within Foo::Object::Tiny::BEGIN@143 which was called:
# once (374µs+147µs) by main::RUNTIME at line 143 # spent 521µs making 1 call to Foo::Object::Tiny::BEGIN@143
# spent 94µs making 1 call to Object::Tiny::import |
144 | } | ||||
145 | 1 | 7µs | 1 | 4µs | my $ot = Foo::Object::Tiny->new( bar => 32 ); # spent 4µs making 1 call to Object::Tiny::new |
146 | sub ot { | ||||
147 | my $x = $ot->bar; | ||||
148 | } | ||||
149 | |||||
150 | |||||
151 | #............Object::Tiny::XS.............. | ||||
152 | { | ||||
153 | 1 | 400ns | package Foo::Object::Tiny::XS; | ||
154 | 2 | 181µs | 2 | 3.36ms | # spent 3.11ms (395µs+2.71) within Foo::Object::Tiny::XS::BEGIN@154 which was called:
# once (395µs+2.71ms) by main::RUNTIME at line 154 # spent 3.11ms making 1 call to Foo::Object::Tiny::XS::BEGIN@154
# spent 251µs making 1 call to Object::Tiny::XS::import |
155 | } | ||||
156 | 1 | 33µs | 1 | 22µs | my $otxs = Foo::Object::Tiny::XS->new(bar => 32); # spent 22µs making 1 call to Object::Tiny::XS::new |
157 | sub otxs { | ||||
158 | my $x = $otxs->bar; | ||||
159 | } | ||||
160 | |||||
161 | |||||
162 | 2 | 774µs | 2 | 8.22ms | # spent 8.09ms (4.46+3.63) within main::BEGIN@162 which was called:
# once (4.46ms+3.63ms) by main::RUNTIME at line 162 # spent 8.09ms making 1 call to main::BEGIN@162
# spent 129µs making 1 call to Benchmark::import |
163 | |||||
164 | 1 | 45µs | 1 | 28µs | print "Testing Perl $], Moose $Moose::VERSION, Mouse $Mouse::VERSION, Moo $Moo::VERSION\n"; # spent 28µs making 1 call to main::CORE:print |
165 | 1 | 7µs | 1 | 53.6s | timethese( # spent 53.6s making 1 call to Benchmark::timethese |
166 | 1_000_000, | ||||
167 | { | ||||
168 | ### Moose => \&moose, | ||||
169 | ### Mouse => \&mouse, | ||||
170 | ### manual => \&manual, | ||||
171 | ### "manual, no check" => \&manual_nc, | ||||
172 | ### 'hash, no check' => \&hash_nc, | ||||
173 | ### hash => \&hash, | ||||
174 | ### Moo => \&moo, | ||||
175 | ### "Moo w/quote_sub" => \&mooqs, | ||||
176 | ### "Object::Tiny" => \&ot, | ||||
177 | ### "Object::Tiny::XS" => \&otxs, | ||||
178 | Typed => \&typed, | ||||
179 | } | ||||
180 | ); | ||||
181 | |||||
182 | |||||
183 | __END__ | ||||
# spent 11µs within Internals::SvREADONLY which was called 6 times, avg 2µs/call:
# 6 times (11µs+0s) by constant::import at line 136 of constant.pm, avg 2µs/call | |||||
# spent 96µs (88+8) within Mouse::Meta::Method::Accessor::XS::_generate_accessor which was called:
# once (88µs+8µs) by Mouse::Meta::Attribute::install_accessors at line 257 of Mouse/Meta/Attribute.pm | |||||
# spent 800ns within Mouse::Meta::Method::Constructor::XS::_generate_constructor which was called:
# once (800ns+0s) by Mouse::Meta::Class::make_immutable at line 292 of Mouse/Meta/Class.pm | |||||
# spent 600ns within Mouse::Meta::Method::Destructor::XS::_generate_destructor which was called:
# once (600ns+0s) by Mouse::Meta::Class::make_immutable at line 298 of Mouse/Meta/Class.pm | |||||
# spent 241µs within UNIVERSAL::VERSION which was called 23 times, avg 10µs/call:
# 9 times (79µs+0s) by strictures::VERSION at line 21 of strictures.pm, avg 9µs/call
# once (21µs+0s) by Moose::Util::BEGIN@12 at line 12 of Moose/Util.pm
# once (13µs+0s) by Method::Generate::Accessor::BEGIN@11 at line 17 of Method/Generate/Accessor.pm
# once (12µs+0s) by Data::OptList::BEGIN@11 at line 11 of Data/OptList.pm
# once (12µs+0s) by Moose::Deprecated::BEGIN@12 at line 19 of Moose/Deprecated.pm
# once (12µs+0s) by Class::Load::BEGIN@9 at line 9 of Class/Load.pm
# once (11µs+0s) by Sub::Exporter::BEGIN@11 at line 11 of Sub/Exporter.pm
# once (11µs+0s) by Class::Load::PP::BEGIN@9 at line 9 of Class/Load/PP.pm
# once (11µs+0s) by Module::Implementation::BEGIN@12 at line 12 of Module/Implementation.pm
# once (10µs+0s) by Moose::Exporter::BEGIN@17 at line 17 of Moose/Exporter.pm
# once (10µs+0s) by Class::Load::BEGIN@10 at line 15 of Class/Load.pm
# once (10µs+0s) by Class::MOP::BEGIN@18 at line 18 of Class/MOP.pm
# once (10µs+0s) by Package::Stash::BEGIN@15 at line 15 of Package/Stash.pm
# once (10µs+0s) by Sub::Exporter::BEGIN@12 at line 12 of Sub/Exporter.pm
# once (9µs+0s) by Sub::Exporter::BEGIN@13 at line 13 of Sub/Exporter.pm | |||||
# spent 1.16ms within UNIVERSAL::can which was called 788 times, avg 1µs/call:
# 277 times (224µs+0s) by Class::MOP::Class::_single_metaclass_can_be_made_compatible at line 354 of Class/MOP/Class.pm, avg 810ns/call
# 129 times (178µs+0s) by Class::MOP::Method::Generated::_compile_code at line 59 of Class/MOP/Method/Generated.pm, avg 1µs/call
# 124 times (135µs+0s) by Class::MOP::Mixin::HasAttributes::add_attribute at line 44 of Class/MOP/Mixin/HasAttributes.pm, avg 1µs/call
# 53 times (223µs+0s) by Exporter::Tiny::_exporter_expand_sub at line 108 of Exporter/Tiny.pm, avg 4µs/call
# 53 times (146µs+0s) by Exporter::Tiny::_exporter_install_sub at line 152 of Exporter/Tiny.pm, avg 3µs/call
# 53 times (58µs+0s) by Exporter::Tiny::_exporter_expand_sub at line 111 of Exporter/Tiny.pm, avg 1µs/call
# 25 times (28µs+0s) by Class::MOP::Mixin::HasMethods::_add_meta_method at line 28 of Class/MOP/Mixin/HasMethods.pm, avg 1µs/call
# 17 times (38µs+0s) by Type::Tiny::_build_compiled_check at line 315 of Type/Tiny.pm, avg 2µs/call
# 7 times (8µs+0s) by Class::MOP::Class::_single_metaclass_is_compatible at line 287 of Class/MOP/Class.pm, avg 1µs/call
# 4 times (12µs+0s) by Moose::Meta::Attribute::_inline_throw_error at line 71 of Moose/Meta/Attribute.pm, avg 3µs/call
# 3 times (12µs+0s) by Method::Generate::Constructor::generate_method at line 77 of Method/Generate/Constructor.pm, avg 4µs/call
# 3 times (12µs+0s) by Method::Generate::Constructor::generate_method at line 86 of Method/Generate/Constructor.pm, avg 4µs/call
# 3 times (11µs+0s) by Mouse::Exporter::build_import_methods at line 110 of Mouse/Exporter.pm, avg 4µs/call
# 3 times (9µs+0s) by Moo::_constructor_maker_for at line 155 of Moo.pm, avg 3µs/call
# 3 times (7µs+0s) by Method::Generate::Constructor::generate_method at line 93 of Method/Generate/Constructor.pm, avg 2µs/call
# 3 times (6µs+0s) by Sub::Exporter::default_generator at line 411 of Sub/Exporter.pm, avg 2µs/call
# 3 times (3µs+0s) by Moo::_accessor_maker_for at line 124 of Moo.pm, avg 1µs/call
# 3 times (3µs+0s) by Moo::_constructor_maker_for at line 157 of Moo.pm, avg 967ns/call
# 2 times (8µs+0s) by Moo::Object::new at line 22 of Moo/Object.pm, avg 4µs/call
# 2 times (6µs+0s) by Moo::Object::new at line 13 of Moo/Object.pm, avg 3µs/call
# 2 times (5µs+0s) by Moose::Exporter::__ANON__[/opt/perl-5.18.1/lib/site_perl/5.18.1/darwin-thread-multi-2level/Moose/Exporter.pm:519] at line 468 of Moose/Exporter.pm, avg 2µs/call
# 2 times (4µs+0s) by if::work at line 14 of if.pm, avg 2µs/call
# 2 times (3µs+0s) by Moose::Meta::Method::_inline_throw_error at line 39 of Moose/Meta/Method.pm, avg 1µs/call
# once (3µs+0s) by Typed::new at line 49 of Typed.pm
# once (2µs+0s) by Class::MOP::Method::Inlined::can_be_inlined at line 70 of Class/MOP/Method/Inlined.pm
# once (2µs+0s) by Sub::Install::__ANON__[/opt/perl-5.18.1/lib/site_perl/5.18.1/Sub/Install.pm:57] at line 45 of Sub/Install.pm
# once (2µs+0s) by Moose::Object::BEGIN@108 at line 109 of Moose/Object.pm
# once (1µs+0s) by Mouse::Meta::Class::verify_superclass at line 82 of Mouse/Meta/Class.pm
# once (1µs+0s) by Moose::Meta::Class::add_attribute at line 583 of Moose/Meta/Class.pm
# once (1µs+0s) by Moose::Meta::Class::_inline_triggers at line 471 of Moose/Meta/Class.pm
# once (1µs+0s) by Moose::Meta::Class::_eval_environment at line 507 of Moose/Meta/Class.pm
# once (1µs+0s) by Class::MOP::Method::Inlined::can_be_inlined at line 58 of Class/MOP/Method/Inlined.pm
# once (1µs+0s) by Moose::Meta::Class::_inline_init_attr_from_default at line 429 of Moose/Meta/Class.pm
# once (1µs+0s) by Moose::Meta::Class::_inline_check_required_attr at line 387 of Moose/Meta/Class.pm
# once (1µs+0s) by Moose::Meta::Class::_eval_environment at line 521 of Moose/Meta/Class.pm | |||||
# spent 1.64ms within UNIVERSAL::isa which was called 1489 times, avg 1µs/call:
# 363 times (304µs+0s) by Class::MOP::Mixin::HasMethods::add_method at line 62 of Class/MOP/Mixin/HasMethods.pm, avg 838ns/call
# 286 times (358µs+0s) by Class::MOP::Object::_is_compatible_with at line 52 of Class/MOP/Object.pm, avg 1µs/call
# 191 times (180µs+0s) by Class::MOP::Method::Accessor::new at line 29 of Class/MOP/Method/Accessor.pm, avg 942ns/call
# 124 times (137µs+0s) by Class::MOP::Mixin::HasAttributes::add_attribute at line 23 of Class/MOP/Mixin/HasAttributes.pm, avg 1µs/call
# 124 times (78µs+0s) by Class::MOP::Attribute::attach_to_class at line 240 of Class/MOP/Attribute.pm, avg 632ns/call
# 89 times (83µs+0s) by Class::MOP::Mixin::HasMethods::get_method at line 122 of Class/MOP/Mixin/HasMethods.pm, avg 931ns/call
# 85 times (183µs+0s) by base::import at line 74 of base.pm, avg 2µs/call
# 44 times (28µs+0s) by Class::MOP::Method::Wrapped::wrap at line 76 of Class/MOP/Method/Wrapped.pm, avg 625ns/call
# 37 times (43µs+0s) by Type::Tiny::isa at line 928 of Type/Tiny.pm, avg 1µs/call
# 30 times (66µs+0s) by Class::MOP::Class::new_object at line 496 of Class/MOP/Class.pm, avg 2µs/call
# 30 times (61µs+0s) by Class::MOP::Method::Inlined::can_be_inlined at line 43 of Class/MOP/Method/Inlined.pm, avg 2µs/call
# 30 times (30µs+0s) by Class::MOP::Method::Constructor::new at line 23 of Class/MOP/Method/Constructor.pm, avg 990ns/call
# 25 times (29µs+0s) by Moose::Meta::TypeConstraint::Registry::add_type_constraint at line 51 of Moose/Meta/TypeConstraint/Registry.pm, avg 1µs/call
# 20 times (43µs+0s) by metaclass::import at line 35 of metaclass.pm, avg 2µs/call
# 3 times (5µs+0s) by Class::MOP::Class::superclasses at line 949 of Class/MOP/Class.pm, avg 2µs/call
# 2 times (3µs+0s) by Class::MOP::Mixin::HasMethods::_add_meta_method at line 31 of Class/MOP/Mixin/HasMethods.pm, avg 2µs/call
# once (2µs+0s) by Moose::Meta::Class::superclasses at line 566 of Moose/Meta/Class.pm
# once (2µs+0s) by Moose::init_meta at line 161 of Moose.pm
# once (1µs+0s) by Moose::Exporter::_apply_metaroles at line 575 of Moose/Exporter.pm
# once (1µs+0s) by Moose::Meta::Method::Destructor::is_needed at line 61 of Moose/Meta/Method/Destructor.pm
# once (900ns+0s) by Moose::Meta::Attribute::_process_accessors at line 1045 of Moose/Meta/Attribute.pm
# once (900ns+0s) by Moose::Meta::Attribute::_process_accessors at line 1057 of Moose/Meta/Attribute.pm | |||||
# spent 519ms within is_Types::Standard::Int which was called 1000000 times, avg 519ns/call:
# 1000000 times (519ms+0s) by Type::Tiny::validate at line 508 of Type/Tiny.pm, avg 519ns/call | |||||
# spent 28µs within main::CORE:print which was called:
# once (28µs+0s) by main::RUNTIME at line 164 | |||||
# spent 6µs within version::(bool which was called:
# once (6µs+0s) by DynaLoader::BEGIN@22 at line 59 of Config.pm | |||||
# spent 4µs within version::(cmp which was called:
# once (4µs+0s) by DynaLoader::BEGIN@22 at line 62 of Config.pm |