← Index
NYTProf Performance Profile   « line view »
For ../prof.pl
  Run on Wed Dec 14 15:57:08 2022
Reported on Wed Dec 14 16:00:29 2022

Filename/Users/ether/.perlbrew/libs/36.0@std/lib/perl5/Moo/_Utils.pm
StatementsExecuted 1989 statements in 12.3ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1114.36ms5.54msMoo::_Utils::::BEGIN@37 Moo::_Utils::BEGIN@37
4214.04ms7.26msMoo::_Utils::::_require Moo::_Utils::_require
1112.13ms3.66msMoo::_Utils::::BEGIN@12 Moo::_Utils::BEGIN@12
16331.56ms6.49msMoo::_Utils::::_install_modifier Moo::_Utils::_install_modifier
11933817µs2.74msMoo::_Utils::::_install_tracked Moo::_Utils::_install_tracked
111798µs1.70msMoo::_Utils::::BEGIN@167 Moo::_Utils::BEGIN@167
11911681µs1.77msMoo::_Utils::::_install_coderef Moo::_Utils::_install_coderef
20655646µs646µsMoo::_Utils::::_getglob Moo::_Utils::_getglob
111577µs648µsMoo::_Utils::::BEGIN@35 Moo::_Utils::BEGIN@35
111382µs484µsMoo::_Utils::::BEGIN@36 Moo::_Utils::BEGIN@36
2022364µs418µsMoo::_Utils::::_check_tracked Moo::_Utils::_check_tracked
12922339µs853µsMoo::_Utils::::_name_coderef Moo::_Utils::_name_coderef
5541231µs231µsMoo::_Utils::::CORE:subst Moo::_Utils::CORE:subst (opcode)
2622213µs7.52msMoo::_Utils::::_load_module Moo::_Utils::_load_module
111210µs210µsMoo::_Utils::::BEGIN@209 Moo::_Utils::BEGIN@209
2742188µs329µsMoo::_Utils::::_set_loaded Moo::_Utils::_set_loaded
2721144µs144µsMoo::_Utils::::CORE:match Moo::_Utils::CORE:match (opcode)
404396µs96µsMoo::_Utils::::_getstash Moo::_Utils::_getstash
22144µs44µsMoo::_Utils::::CORE:regcomp Moo::_Utils::CORE:regcomp (opcode)
11124µs217µsMoo::_Utils::::_maybe_load_module Moo::_Utils::_maybe_load_module
11121µs74µsMoo::_Utils::::BEGIN@228 Moo::_Utils::BEGIN@228
11120µs36µsMoo::_Utils::::BEGIN@141 Moo::_Utils::BEGIN@141
11118µs39µsMoo::_Utils::::BEGIN@278 Moo::_Utils::BEGIN@278
11116µs18µsMoo::_Utils::::BEGIN@2 Moo::_Utils::BEGIN@2
11111µs32µsMoo::_Utils::::BEGIN@235 Moo::_Utils::BEGIN@235
1114µs18µsMoo::_Utils::::BEGIN@3 Moo::_Utils::BEGIN@3
1113µs3µsMoo::_Utils::::BEGIN@33 Moo::_Utils::BEGIN@33
1113µs8µsMoo::_Utils::::BEGIN@6 Moo::_Utils::BEGIN@6
1113µs3µsMoo::_Utils::::CORE:qr Moo::_Utils::CORE:qr (opcode)
1112µs2µsMoo::_Utils::::BEGIN@34 Moo::_Utils::BEGIN@34
1112µs17µsMoo::_Utils::::BEGIN@7 Moo::_Utils::BEGIN@7
0000s0sMoo::_Util::__GUARD__::::DESTROYMoo::_Util::__GUARD__::DESTROY
0000s0sMoo::_Utils::::__ANON__[:216] Moo::_Utils::__ANON__[:216]
0000s0sMoo::_Utils::::__ANON__[:21] Moo::_Utils::__ANON__[:21]
0000s0sMoo::_Utils::::__ANON__[:30] Moo::_Utils::__ANON__[:30]
0000s0sMoo::_Utils::::_unimport_coderefs Moo::_Utils::_unimport_coderefs
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Moo::_Utils;
2222µs220µs
# spent 18µs (16+2) within Moo::_Utils::BEGIN@2 which was called: # once (16µs+2µs) by Moo::BEGIN@6 at line 2
use strict;
# spent 18µs making 1 call to Moo::_Utils::BEGIN@2 # spent 2µs making 1 call to strict::import
3215µs232µs
# spent 18µs (4+14) within Moo::_Utils::BEGIN@3 which was called: # once (4µs+14µs) by Moo::BEGIN@6 at line 3
use warnings;
# spent 18µs making 1 call to Moo::_Utils::BEGIN@3 # spent 14µs making 1 call to warnings::import
4
5{
6228µs213µs
# spent 8µs (3+5) within Moo::_Utils::BEGIN@6 which was called: # once (3µs+5µs) by Moo::BEGIN@6 at line 6
no strict 'refs';
# spent 8µs making 1 call to Moo::_Utils::BEGIN@6 # spent 5µs making 1 call to strict::unimport
72262µs232µs
# spent 17µs (2+15) within Moo::_Utils::BEGIN@7 which was called: # once (2µs+15µs) by Moo::BEGIN@6 at line 7
no warnings 'once';
# spent 17µs making 1 call to Moo::_Utils::BEGIN@7 # spent 15µs making 1 call to warnings::unimport
8206800µs
# spent 646µs within Moo::_Utils::_getglob which was called 206 times, avg 3µs/call: # 119 times (350µs+0s) by Moo::_Utils::_install_coderef at line 227, avg 3µs/call # 74 times (247µs+0s) by Method::Generate::Constructor::current_constructor at line 109 of Method/Generate/Constructor.pm, avg 3µs/call # 9 times (36µs+0s) by Method::Generate::BuildAll::buildall_body_for at line 34 of Method/Generate/BuildAll.pm, avg 4µs/call # 2 times (7µs+0s) by Moo::Role::_install_subs at line 71 of Moo/Role.pm, avg 4µs/call # 2 times (6µs+0s) by Moo::_set_superclasses at line 153 of Moo.pm, avg 3µs/call
sub _getglob { \*{$_[0]} }
940124µs
# spent 96µs within Moo::_Utils::_getstash which was called 40 times, avg 2µs/call: # 20 times (54µs+0s) by Moo::_Utils::_check_tracked at line 247, avg 3µs/call # 17 times (35µs+0s) by Moo::make_class at line 60 of Moo.pm, avg 2µs/call # 2 times (4µs+0s) by Moo::_set_superclasses at line 156 of Moo.pm, avg 2µs/call # once (3µs+0s) by Method::Generate::Constructor::new at line 247 of Method/Generate/Constructor.pm
sub _getstash { \%{"$_[0]::"} }
10}
11
1211µs
# spent 3.66ms (2.13+1.53) within Moo::_Utils::BEGIN@12 which was called: # once (2.13ms+1.53ms) by Moo::BEGIN@6 at line 31
BEGIN {
1311µs my ($su, $sn);
14 $su = $INC{'Sub/Util.pm'} && defined &Sub::Util::set_subname
15 or $sn = $INC{'Sub/Name.pm'}
161176µs or $su = eval { require Sub::Util; } && defined &Sub::Util::set_subname
1711µs or $sn = eval { require Sub::Name; };
18
19 *_subname = $su ? \&Sub::Util::set_subname
20 : $sn ? \&Sub::Name::subname
2112µs : sub { $_[1] };
2211µs *_CAN_SUBNAME = ($su || $sn) ? sub(){1} : sub(){0};
23
2414µs *_WORK_AROUND_BROKEN_MODULE_STATE = "$]" < 5.009 ? sub(){1} : sub(){0};
25 *_WORK_AROUND_HINT_LEAKAGE
26 = "$]" < 5.011 && !("$]" >= 5.009004 && "$]" < 5.010001)
2710s ? sub(){1} : sub(){0};
28
2916µs13µs my $module_name_rx = qr/\A(?!\d)\w+(?:::\w+)*\z/;
# spent 3µs making 1 call to Moo::_Utils::CORE:qr
30110µs *_module_name_rx = sub(){$module_name_rx};
31140µs13.66ms}
# spent 3.66ms making 1 call to Moo::_Utils::BEGIN@12
32
33223µs13µs
# spent 3µs within Moo::_Utils::BEGIN@33 which was called: # once (3µs+0s) by Moo::BEGIN@6 at line 33
use Exporter ();
# spent 3µs making 1 call to Moo::_Utils::BEGIN@33
34111µs12µs
# spent 2µs within Moo::_Utils::BEGIN@34 which was called: # once (2µs+0s) by Moo::BEGIN@6 at line 34
BEGIN { *import = \&Exporter::import }
# spent 2µs making 1 call to Moo::_Utils::BEGIN@34
352190µs1648µs
# spent 648µs (577+71) within Moo::_Utils::BEGIN@35 which was called: # once (577µs+71µs) by Moo::BEGIN@6 at line 35
use Config ();
# spent 648µs making 1 call to Moo::_Utils::BEGIN@35
362165µs2548µs
# spent 484µs (382+102) within Moo::_Utils::BEGIN@36 which was called: # once (382µs+102µs) by Moo::BEGIN@6 at line 36
use Scalar::Util qw(weaken);
# spent 484µs making 1 call to Moo::_Utils::BEGIN@36 # spent 64µs making 1 call to Exporter::import
3721.19ms25.61ms
# spent 5.54ms (4.36+1.18) within Moo::_Utils::BEGIN@37 which was called: # once (4.36ms+1.18ms) by Moo::BEGIN@6 at line 37
use Carp qw(croak);
# spent 5.54ms making 1 call to Moo::_Utils::BEGIN@37 # spent 66µs making 1 call to Exporter::import
38
39# this should be empty, but some CPAN modules expect these
4015µsour @EXPORT = qw(
41 _install_coderef
42 _load_module
43);
44
4518µsour @EXPORT_OK = qw(
46 _check_tracked
47 _getglob
48 _getstash
49 _install_coderef
50 _install_modifier
51 _install_tracked
52 _load_module
53 _maybe_load_module
54 _module_name_rx
55 _name_coderef
56 _set_loaded
57 _unimport_coderefs
58 _linear_isa
59 _in_global_destruction
60 _in_global_destruction_code
61);
62
6311µsmy %EXPORTS;
64
65
# spent 6.49ms (1.56+4.93) within Moo::_Utils::_install_modifier which was called 16 times, avg 406µs/call: # 7 times (1.35ms+2.99ms) by MooX::TypeTiny::import at line 25 of MooX/TypeTiny.pm, avg 621µs/call # 7 times (173µs+1.64ms) by Moo::around or Moo::before at line 131 of Moo.pm, avg 258µs/call # 2 times (31µs+301µs) by Moo::Role::_install_single_modifier at line 393 of Moo/Role.pm, avg 166µs/call
sub _install_modifier {
66168µs my $target = $_[0];
671610µs my $type = $_[1];
68164µs my $code = $_[-1];
691637µs my @names = @_[2 .. $#_ - 1];
70
711619µs @names = @{ $names[0] }
72 if ref($names[0]) eq 'ARRAY';
73
741634µs16345µs my @tracked = _check_tracked($target, \@names);
# spent 345µs making 16 calls to Moo::_Utils::_check_tracked, avg 22µs/call
75
761620µs if ($INC{'Sub/Defer.pm'}) {
77 for my $name (@names) {
78 # CMM will throw for us if it doesn't exist
7924156µs48148µs if (my $to_modify = $target->can($name)) {
# spent 106µs making 24 calls to Sub::Defer::undefer_sub, avg 4µs/call # spent 42µs making 24 calls to UNIVERSAL::can, avg 2µs/call
80 Sub::Defer::undefer_sub($to_modify);
81 }
82 }
83 }
84
8516379µs require Class::Method::Modifiers;
861632µs164.23ms Class::Method::Modifiers::install_modifier(@_);
# spent 4.23ms making 16 calls to Class::Method::Modifiers::install_modifier, avg 264µs/call
87
88168µs if (@tracked) {
8977µs my $exports = $EXPORTS{$target};
90 weaken($exports->{$_} = $target->can($_))
917122µs4242µs for @tracked;
# spent 26µs making 21 calls to UNIVERSAL::can, avg 1µs/call # spent 16µs making 21 calls to Scalar::Util::weaken, avg 762ns/call
92 }
93
941655µs return;
95}
96
97
# spent 2.74ms (817µs+1.92) within Moo::_Utils::_install_tracked which was called 119 times, avg 23µs/call: # 102 times (576µs+1.57ms) by Moo::_install_subs at line 90 of Moo.pm, avg 21µs/call # 12 times (135µs+193µs) by Moo::Role::_install_subs at line 70 of Moo/Role.pm, avg 27µs/call # 5 times (106µs+159µs) by MooX::HandlesVia::import at line 38 of MooX/HandlesVia.pm, avg 53µs/call
sub _install_tracked {
9811936µs my ($target, $name, $code) = @_;
9911940µs my $from = caller;
100119446µs119150µs weaken($EXPORTS{$target}{$name} = $code);
# spent 150µs making 119 calls to Scalar::Util::weaken, avg 1µs/call
101119489µs1191.77ms _install_coderef("${target}::${name}", "${from}::${name}", $code);
# spent 1.77ms making 119 calls to Moo::_Utils::_install_coderef, avg 15µs/call
102}
103
104sub Moo::_Util::__GUARD__::DESTROY {
105 delete $INC{$_[0]->[0]} if @{$_[0]};
106}
107
108
# spent 7.26ms (4.04+3.21) within Moo::_Utils::_require which was called 4 times, avg 1.81ms/call: # 3 times (3.91ms+3.18ms) by Moo::_Utils::_load_module at line 131, avg 2.36ms/call # once (136µs+38µs) by Moo::_Utils::_maybe_load_module at line 157
sub _require {
10943µs my ($file) = @_;
11042µs my $guard = _WORK_AROUND_BROKEN_MODULE_STATE
111 && bless([ $file ], 'Moo::_Util::__GUARD__');
112 local %^H if _WORK_AROUND_HINT_LEAKAGE;
113111.95ms if (!eval { require $file; 1 }) {
11411µs my $e = $@ || "Can't locate $file";
11511µs my $me = __FILE__;
116152µs238µs $e =~ s{ at \Q$me\E line \d+\.\n\z}{};
# spent 30µs making 1 call to Moo::_Utils::CORE:regcomp # spent 8µs making 1 call to Moo::_Utils::CORE:subst
11717µs return $e;
118 }
119 pop @$guard if _WORK_AROUND_BROKEN_MODULE_STATE;
12039µs return undef;
121}
122
123
# spent 7.52ms (213µs+7.30) within Moo::_Utils::_load_module which was called 26 times, avg 289µs/call: # 24 times (196µs+6.04ms) by Moo::Role::_require_module at line 76 of Moo/Role.pm, avg 260µs/call # 2 times (17µs+1.26ms) by Moo::_set_superclasses at line 148 of Moo.pm, avg 640µs/call
sub _load_module {
1242614µs my ($module) = @_;
12526208µs26143µs croak qq{"$module" is not a module name!}
# spent 143µs making 26 calls to Moo::_Utils::CORE:match, avg 6µs/call
126 unless $module =~ _module_name_rx;
12726137µs2678µs (my $file = "$module.pm") =~ s{::}{/}g;
# spent 78µs making 26 calls to Moo::_Utils::CORE:subst, avg 3µs/call
128 return 1
1292655µs if $INC{$file};
130
13137µs37.08ms my $e = _require $file;
# spent 7.08ms making 3 calls to Moo::_Utils::_require, avg 2.36ms/call
132310µs return 1
133 if !defined $e;
134
135 croak $e
136 if $e !~ /\ACan't locate \Q$file\E /;
137
138 # can't just ->can('can') because a sub-package Foo::Bar::Baz
139 # creates a 'Baz::' key in Foo::Bar's symbol table
140 my $stash = _getstash($module)||{};
1412396µs252µs
# spent 36µs (20+16) within Moo::_Utils::BEGIN@141 which was called: # once (20µs+16µs) by Moo::BEGIN@6 at line 141
no strict 'refs';
# spent 36µs making 1 call to Moo::_Utils::BEGIN@141 # spent 16µs making 1 call to strict::unimport
142 return 1 if grep +exists &{"${module}::$_"}, grep !/::\z/, keys %$stash;
143 return 1
144 if $INC{"Moose.pm"} && Class::MOP::class_of($module)
145 or Mouse::Util->can('find_meta') && Mouse::Util::find_meta($module);
146
147 croak $e;
148}
149
150our %MAYBE_LOADED;
151
# spent 217µs (24+193) within Moo::_Utils::_maybe_load_module which was called: # once (24µs+193µs) by Method::Generate::Accessor::BEGIN@18 at line 27 of Method/Generate/Accessor.pm
sub _maybe_load_module {
15211µs my $module = $_[0];
153 return $MAYBE_LOADED{$module}
15411µs if exists $MAYBE_LOADED{$module};
155110µs14µs (my $file = "$module.pm") =~ s{::}{/}g;
# spent 4µs making 1 call to Moo::_Utils::CORE:subst
156
15713µs1174µs my $e = _require $file;
# spent 174µs making 1 call to Moo::_Utils::_require
158123µs215µs if (!defined $e) {
# spent 14µs making 1 call to Moo::_Utils::CORE:regcomp # spent 1µs making 1 call to Moo::_Utils::CORE:match
159 return $MAYBE_LOADED{$module} = 1;
160 }
161 elsif ($e !~ /\ACan't locate \Q$file\E /) {
162 warn "$module exists but failed to load with error: $e";
163 }
16416µs return $MAYBE_LOADED{$module} = 0;
165}
166
167
# spent 1.70ms (798µs+903µs) within Moo::_Utils::BEGIN@167 which was called: # once (798µs+903µs) by Moo::BEGIN@6 at line 207
BEGIN {
168 # optimize for newer perls
169 require mro
1701411µs if "$]" >= 5.009_005;
171
172164µs if (defined &mro::get_linear_isa) {
173 *_linear_isa = \&mro::get_linear_isa;
174 }
175 else {
176 my $e;
177 {
178 local $@;
179 eval <<'END_CODE' or $e = $@;
180sub _linear_isa($;$) {
181 my $class = shift;
182 my $type = shift || exists $Class::C3::MRO{$class} ? 'c3' : 'dfs';
183
184 if ($type eq 'c3') {
185 require Class::C3;
186 return [Class::C3::calculateMRO($class)];
187 }
188
189 my @check = ($class);
190 my @lin;
191
192 my %found;
193 while (defined(my $check = shift @check)) {
194 push @lin, $check;
195 no strict 'refs';
196 unshift @check, grep !$found{$_}++, @{"$check\::ISA"};
197 }
198
199 return \@lin;
200}
201
2021;
203END_CODE
204 }
205 die $e if defined $e;
206 }
2071438µs11.70ms}
# spent 1.70ms making 1 call to Moo::_Utils::BEGIN@167
208
209
# spent 210µs within Moo::_Utils::BEGIN@209 which was called: # once (210µs+0s) by Moo::BEGIN@6 at line 219
BEGIN {
210110µs my $gd_code
211 = "$]" >= 5.014
212 ? q[${^GLOBAL_PHASE} eq 'DESTRUCT']
213 : _maybe_load_module('Devel::GlobalDestruction::XS')
214 ? 'Devel::GlobalDestruction::XS::in_global_destruction()'
215 : 'do { use B (); ${B::main_cv()} == 0 }';
216133µs *_in_global_destruction_code = sub () { $gd_code };
2171160µs eval "sub _in_global_destruction () { $gd_code }; 1"
# spent 5µs executing statements in string eval
218 or die $@;
2191243µs1210µs}
# spent 210µs making 1 call to Moo::_Utils::BEGIN@209
220
221
# spent 329µs (188+141) within Moo::_Utils::_set_loaded which was called 27 times, avg 12µs/call: # 17 times (105µs+99µs) by Moo::import at line 44 of Moo.pm, avg 12µs/call # 7 times (53µs+26µs) by Moo::Role::apply_roles_to_object at line 378 of Moo/Role.pm, avg 11µs/call # 2 times (23µs+13µs) by Moo::Role::import at line 54 of Moo/Role.pm, avg 18µs/call # once (7µs+3µs) by Moo::Role::_build_class_with_roles at line 314 of Moo/Role.pm
sub _set_loaded {
22227247µs27141µs (my $file = "$_[0].pm") =~ s{::}{/}g;
# spent 141µs making 27 calls to Moo::_Utils::CORE:subst, avg 5µs/call
2232782µs $INC{$file} ||= $_[1];
224}
225
226
# spent 1.77ms (681µs+1.09) within Moo::_Utils::_install_coderef which was called 119 times, avg 15µs/call: # 119 times (681µs+1.09ms) by Moo::_Utils::_install_tracked at line 101, avg 15µs/call
sub _install_coderef {
227119276µs2381.09ms my ($glob, $code) = (_getglob($_[0]), _name_coderef(@_));
# spent 741µs making 119 calls to Moo::_Utils::_name_coderef, avg 6µs/call # spent 350µs making 119 calls to Moo::_Utils::_getglob, avg 3µs/call
228275µs2127µs
# spent 74µs (21+53) within Moo::_Utils::BEGIN@228 which was called: # once (21µs+53µs) by Moo::BEGIN@6 at line 228
no warnings 'redefine';
# spent 74µs making 1 call to Moo::_Utils::BEGIN@228 # spent 53µs making 1 call to warnings::unimport
229119245µs if (*{$glob}{CODE}) {
230 *{$glob} = $code;
231 }
232 # perl will sometimes warn about mismatched prototypes coming from the
233 # inheritance cache, so disable them if we aren't redefining a sub
234 else {
2352350µs253µs
# spent 32µs (11+21) within Moo::_Utils::BEGIN@235 which was called: # once (11µs+21µs) by Moo::BEGIN@6 at line 235
no warnings 'prototype';
# spent 32µs making 1 call to Moo::_Utils::BEGIN@235 # spent 21µs making 1 call to warnings::unimport
23611431µs *{$glob} = $code;
237 }
238}
239
240
# spent 853µs (339+514) within Moo::_Utils::_name_coderef which was called 129 times, avg 7µs/call: # 119 times (283µs+458µs) by Moo::_Utils::_install_coderef at line 227, avg 6µs/call # 10 times (56µs+56µs) by Moo::Role::_install_does at line 401 of Moo/Role.pm, avg 11µs/call
sub _name_coderef {
24112940µs shift if @_ > 2; # three args is (target, name, sub)
242129949µs129514µs _CAN_SUBNAME ? _subname(@_) : $_[1];
# spent 514µs making 129 calls to Sub::Util::set_subname, avg 4µs/call
243}
244
245
# spent 418µs (364+54) within Moo::_Utils::_check_tracked which was called 20 times, avg 21µs/call: # 16 times (302µs+43µs) by Moo::_Utils::_install_modifier at line 74, avg 22µs/call # 4 times (62µs+11µs) by Moo::Role::_non_methods at line 152 of Moo/Role.pm, avg 18µs/call
sub _check_tracked {
246205µs my ($target, $names) = @_;
2472032µs2054µs my $stash = _getstash($target);
# spent 54µs making 20 calls to Moo::_Utils::_getstash, avg 3µs/call
2482026µs my $exports = $EXPORTS{$target}
249 or return;
250
251163µs $names = [keys %$exports]
252 if !$names;
253 my %rev =
254 map +($exports->{$_} => $_),
25516135µs grep defined $exports->{$_},
256 keys %$exports;
257
258 return
259 grep {
26063125µs my $g = $stash->{$_};
2614738µs $g && defined &$g && exists $rev{\&$g};
262 }
263 @$names;
264}
265
266sub _unimport_coderefs {
267 my ($target) = @_;
268
269 my $stash = _getstash($target);
270 my @exports = _check_tracked($target);
271
272 foreach my $name (@exports) {
273 my $old = delete $stash->{$name};
274 my $full_name = join('::',$target,$name);
275 # Copy everything except the code slot back into place (e.g. $has)
276 foreach my $type (qw(SCALAR HASH ARRAY IO)) {
277 next unless defined(*{$old}{$type});
2782343µs260µs
# spent 39µs (18+21) within Moo::_Utils::BEGIN@278 which was called: # once (18µs+21µs) by Moo::BEGIN@6 at line 278
no strict 'refs';
# spent 39µs making 1 call to Moo::_Utils::BEGIN@278 # spent 21µs making 1 call to strict::unimport
279 *$full_name = *{$old}{$type};
280 }
281 }
282}
283
284126µs19µsif ($Config::Config{useithreads}) {
# spent 9µs making 1 call to Config::FETCH
285 require Moo::HandleMoose::_TypeMap;
286}
287
288116µs1;
 
# spent 144µs within Moo::_Utils::CORE:match which was called 27 times, avg 5µs/call: # 26 times (143µs+0s) by Moo::_Utils::_load_module at line 125, avg 6µs/call # once (1µs+0s) by Moo::_Utils::_maybe_load_module at line 158
sub Moo::_Utils::CORE:match; # opcode
# spent 3µs within Moo::_Utils::CORE:qr which was called: # once (3µs+0s) by Moo::_Utils::BEGIN@12 at line 29
sub Moo::_Utils::CORE:qr; # opcode
# spent 44µs within Moo::_Utils::CORE:regcomp which was called 2 times, avg 22µs/call: # once (30µs+0s) by Moo::_Utils::_require at line 116 # once (14µs+0s) by Moo::_Utils::_maybe_load_module at line 158
sub Moo::_Utils::CORE:regcomp; # opcode
# spent 231µs within Moo::_Utils::CORE:subst which was called 55 times, avg 4µs/call: # 27 times (141µs+0s) by Moo::_Utils::_set_loaded at line 222, avg 5µs/call # 26 times (78µs+0s) by Moo::_Utils::_load_module at line 127, avg 3µs/call # once (8µs+0s) by Moo::_Utils::_require at line 116 # once (4µs+0s) by Moo::_Utils::_maybe_load_module at line 155
sub Moo::_Utils::CORE:subst; # opcode