← Index
NYTProf Performance Profile   « line view »
For ../prof.pl
  Run on Wed Dec 14 16:10:05 2022
Reported on Wed Dec 14 16:12:56 2022

Filename/Users/ether/.perlbrew/libs/36.0@std/lib/perl5/Moo/_Utils.pm
StatementsExecuted 2010 statements in 11.8ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
4215.21ms8.66msMoo::_Utils::::_require Moo::_Utils::_require
1112.83ms3.49msMoo::_Utils::::BEGIN@37 Moo::_Utils::BEGIN@37
17332.17ms7.89msMoo::_Utils::::_install_modifier Moo::_Utils::_install_modifier
1111.83ms2.41msMoo::_Utils::::BEGIN@12 Moo::_Utils::BEGIN@12
111876µs974µsMoo::_Utils::::BEGIN@35 Moo::_Utils::BEGIN@35
11911647µs1.49msMoo::_Utils::::_install_coderef Moo::_Utils::_install_coderef
111590µs1.12msMoo::_Utils::::BEGIN@167 Moo::_Utils::BEGIN@167
11933567µs2.18msMoo::_Utils::::_install_tracked Moo::_Utils::_install_tracked
2122483µs538µsMoo::_Utils::::_check_tracked Moo::_Utils::_check_tracked
111478µs591µsMoo::_Utils::::BEGIN@36 Moo::_Utils::BEGIN@36
20655470µs470µsMoo::_Utils::::_getglob Moo::_Utils::_getglob
12922345µs783µsMoo::_Utils::::_name_coderef Moo::_Utils::_name_coderef
2622190µs8.89msMoo::_Utils::::_load_module Moo::_Utils::_load_module
5541188µs188µsMoo::_Utils::::CORE:subst Moo::_Utils::CORE:subst (opcode)
2742176µs277µsMoo::_Utils::::_set_loaded Moo::_Utils::_set_loaded
2721142µs142µsMoo::_Utils::::CORE:match Moo::_Utils::CORE:match (opcode)
414390µs90µsMoo::_Utils::::_getstash Moo::_Utils::_getstash
11150µs56µsMoo::_Utils::::BEGIN@141 Moo::_Utils::BEGIN@141
22143µs43µsMoo::_Utils::::CORE:regcomp Moo::_Utils::CORE:regcomp (opcode)
11137µs37µsMoo::_Utils::::BEGIN@209 Moo::_Utils::BEGIN@209
11128µs214µsMoo::_Utils::::_maybe_load_module Moo::_Utils::_maybe_load_module
11126µs29µsMoo::_Utils::::BEGIN@2 Moo::_Utils::BEGIN@2
11120µs38µsMoo::_Utils::::BEGIN@228 Moo::_Utils::BEGIN@228
11115µs28µsMoo::_Utils::::BEGIN@235 Moo::_Utils::BEGIN@235
11111µs19µsMoo::_Utils::::BEGIN@278 Moo::_Utils::BEGIN@278
1119µs16µsMoo::_Utils::::BEGIN@6 Moo::_Utils::BEGIN@6
1116µs17µsMoo::_Utils::::BEGIN@7 Moo::_Utils::BEGIN@7
1115µs28µsMoo::_Utils::::BEGIN@3 Moo::_Utils::BEGIN@3
1113µs3µsMoo::_Utils::::BEGIN@33 Moo::_Utils::BEGIN@33
1113µs3µsMoo::_Utils::::CORE:qr Moo::_Utils::CORE:qr (opcode)
1111µs1µsMoo::_Utils::::BEGIN@34 Moo::_Utils::BEGIN@34
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;
2239µs232µs
# spent 29µs (26+3) within Moo::_Utils::BEGIN@2 which was called: # once (26µs+3µs) by Moo::BEGIN@6 at line 2
use strict;
# spent 29µs making 1 call to Moo::_Utils::BEGIN@2 # spent 3µs making 1 call to strict::import
3231µs251µs
# spent 28µs (5+23) within Moo::_Utils::BEGIN@3 which was called: # once (5µs+23µs) by Moo::BEGIN@6 at line 3
use warnings;
# spent 28µs making 1 call to Moo::_Utils::BEGIN@3 # spent 23µs making 1 call to warnings::import
4
5{
6229µs223µs
# spent 16µs (9+7) within Moo::_Utils::BEGIN@6 which was called: # once (9µs+7µs) by Moo::BEGIN@6 at line 6
no strict 'refs';
# spent 16µs making 1 call to Moo::_Utils::BEGIN@6 # spent 7µs making 1 call to strict::unimport
72412µs228µs
# spent 17µs (6+11) within Moo::_Utils::BEGIN@7 which was called: # once (6µs+11µs) by Moo::BEGIN@6 at line 7
no warnings 'once';
# spent 17µs making 1 call to Moo::_Utils::BEGIN@7 # spent 11µs making 1 call to warnings::unimport
8206695µs
# spent 470µs within Moo::_Utils::_getglob which was called 206 times, avg 2µs/call: # 119 times (219µs+0s) by Moo::_Utils::_install_coderef at line 227, avg 2µs/call # 74 times (187µs+0s) by Method::Generate::Constructor::current_constructor at line 109 of Method/Generate/Constructor.pm, avg 3µs/call # 9 times (27µs+0s) by Method::Generate::BuildAll::buildall_body_for at line 34 of Method/Generate/BuildAll.pm, avg 3µs/call # 2 times (32µs+0s) by Moo::_set_superclasses at line 153 of Moo.pm, avg 16µs/call # 2 times (5µs+0s) by Moo::Role::_install_subs at line 71 of Moo/Role.pm, avg 2µs/call
sub _getglob { \*{$_[0]} }
941120µs
# spent 90µs within Moo::_Utils::_getstash which was called 41 times, avg 2µs/call: # 21 times (55µs+0s) by Moo::_Utils::_check_tracked at line 247, avg 3µs/call # 17 times (30µs+0s) by Moo::make_class at line 60 of Moo.pm, avg 2µs/call # 2 times (3µs+0s) by Moo::_set_superclasses at line 156 of Moo.pm, avg 2µs/call # once (2µs+0s) by Method::Generate::Constructor::new at line 247 of Method/Generate/Constructor.pm
sub _getstash { \%{"$_[0]::"} }
10}
11
1211µs
# spent 2.41ms (1.83+585µs) within Moo::_Utils::BEGIN@12 which was called: # once (1.83ms+585µs) by Moo::BEGIN@6 at line 31
BEGIN {
1310s my ($su, $sn);
14 $su = $INC{'Sub/Util.pm'} && defined &Sub::Util::set_subname
15 or $sn = $INC{'Sub/Name.pm'}
161416µs or $su = eval { require Sub::Util; } && defined &Sub::Util::set_subname
1712µs or $sn = eval { require Sub::Name; };
18
19 *_subname = $su ? \&Sub::Util::set_subname
20 : $sn ? \&Sub::Name::subname
2111µs : sub { $_[1] };
2211µs *_CAN_SUBNAME = ($su || $sn) ? sub(){1} : sub(){0};
23
2413µs *_WORK_AROUND_BROKEN_MODULE_STATE = "$]" < 5.009 ? sub(){1} : sub(){0};
25 *_WORK_AROUND_HINT_LEAKAGE
26 = "$]" < 5.011 && !("$]" >= 5.009004 && "$]" < 5.010001)
2711µs ? 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
3017µs *_module_name_rx = sub(){$module_name_rx};
31135µs12.41ms}
# spent 2.41ms making 1 call to Moo::_Utils::BEGIN@12
32
33219µ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
3419µs11µs
# spent 1µs within Moo::_Utils::BEGIN@34 which was called: # once (1µs+0s) by Moo::BEGIN@6 at line 34
BEGIN { *import = \&Exporter::import }
# spent 1µs making 1 call to Moo::_Utils::BEGIN@34
352275µs1974µs
# spent 974µs (876+98) within Moo::_Utils::BEGIN@35 which was called: # once (876µs+98µs) by Moo::BEGIN@6 at line 35
use Config ();
# spent 974µs making 1 call to Moo::_Utils::BEGIN@35
362303µs2645µs
# spent 591µs (478+113) within Moo::_Utils::BEGIN@36 which was called: # once (478µs+113µs) by Moo::BEGIN@6 at line 36
use Scalar::Util qw(weaken);
# spent 591µs making 1 call to Moo::_Utils::BEGIN@36 # spent 54µs making 1 call to Exporter::import
372957µs23.53ms
# spent 3.49ms (2.83+667µs) within Moo::_Utils::BEGIN@37 which was called: # once (2.83ms+667µs) by Moo::BEGIN@6 at line 37
use Carp qw(croak);
# spent 3.49ms making 1 call to Moo::_Utils::BEGIN@37 # spent 38µs making 1 call to Exporter::import
38
39# this should be empty, but some CPAN modules expect these
4012µsour @EXPORT = qw(
41 _install_coderef
42 _load_module
43);
44
4512µ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 7.89ms (2.17+5.72) within Moo::_Utils::_install_modifier which was called 17 times, avg 464µs/call: # 8 times (156µs+1.67ms) by Moo::around or Moo::before at line 131 of Moo.pm, avg 228µs/call # 7 times (1.97ms+3.28ms) by MooX::TypeTiny::import at line 25 of MooX/TypeTiny.pm, avg 749µs/call # 2 times (53µs+769µs) by Moo::Role::_install_single_modifier at line 393 of Moo/Role.pm, avg 411µs/call
sub _install_modifier {
66175µs my $target = $_[0];
671711µs my $type = $_[1];
68175µs my $code = $_[-1];
691738µs my @names = @_[2 .. $#_ - 1];
70
711716µs @names = @{ $names[0] }
72 if ref($names[0]) eq 'ARRAY';
73
741747µs17453µs my @tracked = _check_tracked($target, \@names);
# spent 453µs making 17 calls to Moo::_Utils::_check_tracked, avg 27µs/call
75
761717µs if ($INC{'Sub/Defer.pm'}) {
77 for my $name (@names) {
78 # CMM will throw for us if it doesn't exist
7925146µs5094µs if (my $to_modify = $target->can($name)) {
# spent 52µs making 25 calls to Sub::Defer::undefer_sub, avg 2µs/call # spent 42µs making 25 calls to UNIVERSAL::can, avg 2µs/call
80 Sub::Defer::undefer_sub($to_modify);
81 }
82 }
83 }
84
8517609µs require Class::Method::Modifiers;
861749µs174.84ms Class::Method::Modifiers::install_modifier(@_);
# spent 4.84ms making 17 calls to Class::Method::Modifiers::install_modifier, avg 285µs/call
87
881710µs if (@tracked) {
8976µs my $exports = $EXPORTS{$target};
90 weaken($exports->{$_} = $target->can($_))
917107µs4231µs for @tracked;
# spent 20µs making 21 calls to UNIVERSAL::can, avg 952ns/call # spent 11µs making 21 calls to Scalar::Util::weaken, avg 524ns/call
92 }
93
941765µs return;
95}
96
97
# spent 2.18ms (567µs+1.62) within Moo::_Utils::_install_tracked which was called 119 times, avg 18µs/call: # 102 times (465µs+1.37ms) by Moo::_install_subs at line 90 of Moo.pm, avg 18µs/call # 12 times (60µs+162µs) by Moo::Role::_install_subs at line 70 of Moo/Role.pm, avg 18µs/call # 5 times (42µs+89µs) by MooX::HandlesVia::import at line 38 of MooX/HandlesVia.pm, avg 26µs/call
sub _install_tracked {
9811927µs my ($target, $name, $code) = @_;
9911936µs my $from = caller;
100119352µs119123µs weaken($EXPORTS{$target}{$name} = $code);
# spent 123µs making 119 calls to Scalar::Util::weaken, avg 1µs/call
101119313µs1191.49ms _install_coderef("${target}::${name}", "${from}::${name}", $code);
# spent 1.49ms making 119 calls to Moo::_Utils::_install_coderef, avg 13µs/call
102}
103
104sub Moo::_Util::__GUARD__::DESTROY {
105 delete $INC{$_[0]->[0]} if @{$_[0]};
106}
107
108
# spent 8.66ms (5.21+3.45) within Moo::_Utils::_require which was called 4 times, avg 2.17ms/call: # 3 times (5.08ms+3.41ms) by Moo::_Utils::_load_module at line 131, avg 2.83ms/call # once (129µs+42µs) by Moo::_Utils::_maybe_load_module at line 157
sub _require {
10941µs my ($file) = @_;
11044µs my $guard = _WORK_AROUND_BROKEN_MODULE_STATE
111 && bless([ $file ], 'Moo::_Util::__GUARD__');
112 local %^H if _WORK_AROUND_HINT_LEAKAGE;
113112.39ms if (!eval { require $file; 1 }) {
11410s my $e = $@ || "Can't locate $file";
11510s my $me = __FILE__;
116157µs242µs $e =~ s{ at \Q$me\E line \d+\.\n\z}{};
# spent 33µs making 1 call to Moo::_Utils::CORE:regcomp # spent 9µs making 1 call to Moo::_Utils::CORE:subst
117113µs return $e;
118 }
119 pop @$guard if _WORK_AROUND_BROKEN_MODULE_STATE;
120312µs return undef;
121}
122
123
# spent 8.89ms (190µs+8.70) within Moo::_Utils::_load_module which was called 26 times, avg 342µs/call: # 24 times (173µs+7.27ms) by Moo::Role::_require_module at line 76 of Moo/Role.pm, avg 310µs/call # 2 times (17µs+1.43ms) by Moo::_set_superclasses at line 148 of Moo.pm, avg 726µs/call
sub _load_module {
1242613µs my ($module) = @_;
12526195µs26141µs croak qq{"$module" is not a module name!}
# spent 141µs making 26 calls to Moo::_Utils::CORE:match, avg 5µs/call
126 unless $module =~ _module_name_rx;
12726129µs2674µs (my $file = "$module.pm") =~ s{::}{/}g;
# spent 74µs making 26 calls to Moo::_Utils::CORE:subst, avg 3µs/call
128 return 1
1292658µs if $INC{$file};
130
13135µs38.49ms my $e = _require $file;
# spent 8.49ms making 3 calls to Moo::_Utils::_require, avg 2.83ms/call
132312µ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)||{};
1412439µs262µs
# spent 56µs (50+6) within Moo::_Utils::BEGIN@141 which was called: # once (50µs+6µs) by Moo::BEGIN@6 at line 141
no strict 'refs';
# spent 56µs making 1 call to Moo::_Utils::BEGIN@141 # spent 6µ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 214µs (28+186) within Moo::_Utils::_maybe_load_module which was called: # once (28µs+186µ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};
155111µs14µs (my $file = "$module.pm") =~ s{::}{/}g;
# spent 4µs making 1 call to Moo::_Utils::CORE:subst
156
15713µs1171µs my $e = _require $file;
# spent 171µs making 1 call to Moo::_Utils::_require
158121µs211µs if (!defined $e) {
# spent 10µ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.12ms (590µs+528µs) within Moo::_Utils::BEGIN@167 which was called: # once (590µs+528µs) by Moo::BEGIN@6 at line 207
BEGIN {
168 # optimize for newer perls
169 require mro
1701397µs if "$]" >= 5.009_005;
171
17216µ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 }
2071115µs11.12ms}
# spent 1.12ms making 1 call to Moo::_Utils::BEGIN@167
208
209
# spent 37µs within Moo::_Utils::BEGIN@209 which was called: # once (37µs+0s) by Moo::BEGIN@6 at line 219
BEGIN {
21012µ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 }';
21614µs *_in_global_destruction_code = sub () { $gd_code };
217128µs eval "sub _in_global_destruction () { $gd_code }; 1"
# spent 2µs executing statements in string eval
218 or die $@;
219173µs137µs}
# spent 37µs making 1 call to Moo::_Utils::BEGIN@209
220
221
# spent 277µs (176+101) within Moo::_Utils::_set_loaded which was called 27 times, avg 10µs/call: # 17 times (118µs+63µs) by Moo::import at line 44 of Moo.pm, avg 11µs/call # 7 times (32µs+22µs) by Moo::Role::apply_roles_to_object at line 378 of Moo/Role.pm, avg 8µs/call # 2 times (16µs+9µs) by Moo::Role::import at line 54 of Moo/Role.pm, avg 12µs/call # once (10µs+7µs) by Moo::Role::_build_class_with_roles at line 314 of Moo/Role.pm
sub _set_loaded {
22227206µs27101µs (my $file = "$_[0].pm") =~ s{::}{/}g;
# spent 101µs making 27 calls to Moo::_Utils::CORE:subst, avg 4µs/call
2232775µs $INC{$file} ||= $_[1];
224}
225
226
# spent 1.49ms (647µs+847µs) within Moo::_Utils::_install_coderef which was called 119 times, avg 13µs/call: # 119 times (647µs+847µs) by Moo::_Utils::_install_tracked at line 101, avg 13µs/call
sub _install_coderef {
227119182µs238847µs my ($glob, $code) = (_getglob($_[0]), _name_coderef(@_));
# spent 628µs making 119 calls to Moo::_Utils::_name_coderef, avg 5µs/call # spent 219µs making 119 calls to Moo::_Utils::_getglob, avg 2µs/call
228260µs256µs
# spent 38µs (20+18) within Moo::_Utils::BEGIN@228 which was called: # once (20µs+18µs) by Moo::BEGIN@6 at line 228
no warnings 'redefine';
# spent 38µs making 1 call to Moo::_Utils::BEGIN@228 # spent 18µs making 1 call to warnings::unimport
229119205µ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 {
2352229µs241µs
# spent 28µs (15+13) within Moo::_Utils::BEGIN@235 which was called: # once (15µs+13µs) by Moo::BEGIN@6 at line 235
no warnings 'prototype';
# spent 28µs making 1 call to Moo::_Utils::BEGIN@235 # spent 13µs making 1 call to warnings::unimport
23611436µs *{$glob} = $code;
237 }
238}
239
240
# spent 783µs (345+438) within Moo::_Utils::_name_coderef which was called 129 times, avg 6µs/call: # 119 times (289µs+339µs) by Moo::_Utils::_install_coderef at line 227, avg 5µs/call # 10 times (56µs+99µs) by Moo::Role::_install_does at line 401 of Moo/Role.pm, avg 16µs/call
sub _name_coderef {
24112934µs shift if @_ > 2; # three args is (target, name, sub)
242129889µs129438µs _CAN_SUBNAME ? _subname(@_) : $_[1];
# spent 438µs making 129 calls to Sub::Util::set_subname, avg 3µs/call
243}
244
245
# spent 538µs (483+55) within Moo::_Utils::_check_tracked which was called 21 times, avg 26µs/call: # 17 times (407µs+46µs) by Moo::_Utils::_install_modifier at line 74, avg 27µs/call # 4 times (76µs+9µs) by Moo::Role::_non_methods at line 152 of Moo/Role.pm, avg 21µs/call
sub _check_tracked {
246219µs my ($target, $names) = @_;
2472146µs2155µs my $stash = _getstash($target);
# spent 55µs making 21 calls to Moo::_Utils::_getstash, avg 3µs/call
2482138µs my $exports = $EXPORTS{$target}
249 or return;
250
2511712µs $names = [keys %$exports]
252 if !$names;
253 my %rev =
254 map +($exports->{$_} => $_),
25517142µs grep defined $exports->{$_},
256 keys %$exports;
257
258 return
259 grep {
26065170µs my $g = $stash->{$_};
2614865µ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});
2782183µs227µs
# spent 19µs (11+8) within Moo::_Utils::BEGIN@278 which was called: # once (11µs+8µs) by Moo::BEGIN@6 at line 278
no strict 'refs';
# spent 19µs making 1 call to Moo::_Utils::BEGIN@278 # spent 8µs making 1 call to strict::unimport
279 *$full_name = *{$old}{$type};
280 }
281 }
282}
283
28417µs15µsif ($Config::Config{useithreads}) {
# spent 5µs making 1 call to Config::FETCH
285 require Moo::HandleMoose::_TypeMap;
286}
287
28816µs1;
 
# spent 142µs within Moo::_Utils::CORE:match which was called 27 times, avg 5µs/call: # 26 times (141µs+0s) by Moo::_Utils::_load_module at line 125, avg 5µ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 43µs within Moo::_Utils::CORE:regcomp which was called 2 times, avg 22µs/call: # once (33µs+0s) by Moo::_Utils::_require at line 116 # once (10µs+0s) by Moo::_Utils::_maybe_load_module at line 158
sub Moo::_Utils::CORE:regcomp; # opcode
# spent 188µs within Moo::_Utils::CORE:subst which was called 55 times, avg 3µs/call: # 27 times (101µs+0s) by Moo::_Utils::_set_loaded at line 222, avg 4µs/call # 26 times (74µs+0s) by Moo::_Utils::_load_module at line 127, avg 3µs/call # once (9µ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