← 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:58 2022

Filename/Users/ether/.perlbrew/libs/36.0@std/lib/perl5/YAML/PP/Schema.pm
StatementsExecuted 575164 statements in 702ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
2094111453ms668msYAML::PP::Schema::::load_scalarYAML::PP::Schema::load_scalar
709991189.3ms89.3msYAML::PP::Schema::::CORE:regcompYAML::PP::Schema::CORE:regcomp (opcode)
710013183.2ms83.2msYAML::PP::Schema::::CORE:matchYAML::PP::Schema::CORE:match (opcode)
69391134.8ms39.3msYAML::PP::Schema::::create_mappingYAML::PP::Schema::create_mapping
285534117.1ms17.1msYAML::PP::Schema::::resolversYAML::PP::Schema::resolvers
645113.72ms4.07msYAML::PP::Schema::::create_sequenceYAML::PP::Schema::create_sequence
581112.45ms4.09msYAML::PP::Schema::::_bool_jsonpp_trueYAML::PP::Schema::_bool_jsonpp_true
408111.67ms2.74msYAML::PP::Schema::::_bool_jsonpp_falseYAML::PP::Schema::_bool_jsonpp_false
1111.45ms1.93msYAML::PP::Schema::::BEGIN@9YAML::PP::Schema::BEGIN@9
111953µs1.03msYAML::PP::Schema::::BEGIN@5YAML::PP::Schema::BEGIN@5
28111401µs422µsYAML::PP::Schema::::add_resolverYAML::PP::Schema::add_resolver
2861189µs211µsYAML::PP::Schema::::add_representerYAML::PP::Schema::add_representer
11159µs3.08msYAML::PP::Schema::::load_subschemasYAML::PP::Schema::load_subschemas
11150µs50µsYAML::PP::Schema::::newYAML::PP::Schema::new
11129µs32µsYAML::PP::::BEGIN@1 YAML::PP::BEGIN@1
281122µs22µsYAML::PP::Schema::::representersYAML::PP::Schema::representers
11111µs11µsYAML::PP::Schema::::yaml_versionYAML::PP::Schema::yaml_version
1117µs9µsYAML::PP::Schema::::BEGIN@4YAML::PP::Schema::BEGIN@4
1116µs17µsYAML::PP::Schema::::BEGIN@11YAML::PP::Schema::BEGIN@11
3115µs5µsYAML::PP::Schema::::trueYAML::PP::Schema::true
1114µs28µsYAML::PP::::BEGIN@2 YAML::PP::BEGIN@2
2113µs3µsYAML::PP::Schema::::bool_classYAML::PP::Schema::bool_class
3112µs2µsYAML::PP::Schema::::falseYAML::PP::Schema::false
0000s0sYAML::PP::Schema::::_bool_booleanpm_falseYAML::PP::Schema::_bool_booleanpm_false
0000s0sYAML::PP::Schema::::_bool_booleanpm_trueYAML::PP::Schema::_bool_booleanpm_true
0000s0sYAML::PP::Schema::::_bool_perl_falseYAML::PP::Schema::_bool_perl_false
0000s0sYAML::PP::Schema::::_bool_perl_trueYAML::PP::Schema::_bool_perl_true
0000s0sYAML::PP::Schema::::add_collection_resolverYAML::PP::Schema::add_collection_resolver
0000s0sYAML::PP::Schema::::add_mapping_resolverYAML::PP::Schema::add_mapping_resolver
0000s0sYAML::PP::Schema::::add_sequence_resolverYAML::PP::Schema::add_sequence_resolver
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1228µs235µs
# spent 32µs (29+3) within YAML::PP::BEGIN@1 which was called: # once (29µs+3µs) by YAML::PP::BEGIN@8 at line 1
use strict;
# spent 32µs making 1 call to YAML::PP::BEGIN@1 # spent 3µs making 1 call to strict::import
2248µs252µs
# spent 28µs (4+24) within YAML::PP::BEGIN@2 which was called: # once (4µs+24µs) by YAML::PP::BEGIN@8 at line 2
use warnings;
# spent 28µs making 1 call to YAML::PP::BEGIN@2 # spent 24µs making 1 call to warnings::import
3package YAML::PP::Schema;
4219µs211µs
# spent 9µs (7+2) within YAML::PP::Schema::BEGIN@4 which was called: # once (7µs+2µs) by YAML::PP::BEGIN@8 at line 4
use B;
# spent 9µs making 1 call to YAML::PP::Schema::BEGIN@4 # spent 2µs making 1 call to B::import
52337µs11.03ms
# spent 1.03ms (953µs+73µs) within YAML::PP::Schema::BEGIN@5 which was called: # once (953µs+73µs) by YAML::PP::BEGIN@8 at line 5
use Module::Load qw//;
# spent 1.03ms making 1 call to YAML::PP::Schema::BEGIN@5
6
710sour $VERSION = '0.035'; # VERSION
8
92692µs21.97ms
# spent 1.93ms (1.45+480µs) within YAML::PP::Schema::BEGIN@9 which was called: # once (1.45ms+480µs) by YAML::PP::BEGIN@8 at line 9
use YAML::PP::Common qw/ YAML_PLAIN_SCALAR_STYLE /;
# spent 1.93ms making 1 call to YAML::PP::Schema::BEGIN@9 # spent 41µs making 1 call to Exporter::import
10
1122.64ms228µs
# spent 17µs (6+11) within YAML::PP::Schema::BEGIN@11 which was called: # once (6µs+11µs) by YAML::PP::BEGIN@8 at line 11
use Scalar::Util qw/ blessed /;
# spent 17µs making 1 call to YAML::PP::Schema::BEGIN@11 # spent 11µs making 1 call to Exporter::import
12
13
# spent 50µs within YAML::PP::Schema::new which was called: # once (50µs+0s) by YAML::PP::new at line 55 of YAML/PP.pm
sub new {
1412µs my ($class, %args) = @_;
15
1611µs my $yaml_version = delete $args{yaml_version};
1712µs my $bool = delete $args{boolean};
1811µs $bool = 'perl' unless defined $bool;
1910s if (keys %args) {
20 die "Unexpected arguments: " . join ', ', sort keys %args;
21 }
2211µs my $true;
23 my $false;
24 my @bool_class;
2515µs my @bools = split m/,/, $bool;
2610s for my $b (@bools) {
2713µs if ($b eq '*') {
28 push @bool_class, ('boolean', 'JSON::PP::Boolean');
29 last;
30 }
31 elsif ($b eq 'JSON::PP') {
3213µs require JSON::PP;
3312µs $true ||= \&_bool_jsonpp_true;
3411µs $false ||= \&_bool_jsonpp_false;
3511µs push @bool_class, 'JSON::PP::Boolean';
36 }
37 elsif ($b eq 'boolean') {
38 require boolean;
39 $true ||= \&_bool_booleanpm_true;
40 $false ||= \&_bool_booleanpm_false;
41 push @bool_class, 'boolean';
42 }
43 elsif ($b eq 'perl') {
44 $true ||= \&_bool_perl_true;
45 $false ||= \&_bool_perl_false;
46 }
47 elsif ($b eq 'perl_experimental') {
48 $true ||= \&_bool_perl_true;
49 $false ||= \&_bool_perl_false;
50 push @bool_class, 'perl_experimental';
51 }
52 else {
53 die "Invalid value for 'boolean': '$b'. Allowed: ('perl', 'boolean', 'JSON::PP')";
54 }
55 }
56
57116µs my %representers = (
58 'undef' => undef,
59 flags => [],
60 equals => {},
61 regex => [],
62 class_equals => {},
63 class_matches => [],
64 class_isa => [],
65 scalarref => undef,
66 refref => undef,
67 coderef => undef,
68 glob => undef,
69 tied_equals => {},
70 );
7117µs my $self = bless {
72 yaml_version => $yaml_version,
73 resolvers => {},
74 representers => \%representers,
75 true => $true,
76 false => $false,
77 bool_class => \@bool_class,
78 }, $class;
7917µs return $self;
80}
81
822855364.4ms
# spent 17.1ms within YAML::PP::Schema::resolvers which was called 28553 times, avg 600ns/call: # 20941 times (12.3ms+0s) by YAML::PP::Schema::load_scalar at line 308, avg 586ns/call # 6939 times (4.48ms+0s) by YAML::PP::Schema::create_mapping at line 392, avg 645ns/call # 645 times (348µs+0s) by YAML::PP::Schema::create_sequence at line 362, avg 540ns/call # 28 times (21µs+0s) by YAML::PP::Schema::add_resolver at line 153, avg 750ns/call
sub resolvers { return $_[0]->{resolvers} }
832841µs
# spent 22µs within YAML::PP::Schema::representers which was called 28 times, avg 786ns/call: # 28 times (22µs+0s) by YAML::PP::Schema::add_representer at line 225, avg 786ns/call
sub representers { return $_[0]->{representers} }
84
85310µs
# spent 5µs within YAML::PP::Schema::true which was called 3 times, avg 2µs/call: # 3 times (5µs+0s) by YAML::PP::Schema::Core::register at line 35 of YAML/PP/Schema/Core.pm, avg 2µs/call
sub true { return $_[0]->{true} }
86330µs
# spent 2µs within YAML::PP::Schema::false which was called 3 times, avg 667ns/call: # 3 times (2µs+0s) by YAML::PP::Schema::Core::register at line 39 of YAML/PP/Schema/Core.pm, avg 667ns/call
sub false { return $_[0]->{false} }
8729µs
# spent 3µs within YAML::PP::Schema::bool_class which was called 2 times, avg 2µs/call: # 2 times (3µs+0s) by YAML::PP::Schema::Core::register at line 98 of YAML/PP/Schema/Core.pm, avg 2µs/call
sub bool_class { return @{ $_[0]->{bool_class} } ? $_[0]->{bool_class} : undef }
88114µs
# spent 11µs within YAML::PP::Schema::yaml_version which was called: # once (11µs+0s) by YAML::PP::Schema::load_subschemas at line 100
sub yaml_version { return $_[0]->{yaml_version} }
89
9011µsmy %LOADED_SCHEMA = (
91 JSON => 1,
92);
9311µsmy %DEFAULT_SCHEMA = (
94 '1.2' => 'Core',
95 '1.1' => 'YAML1_1',
96);
97
98
# spent 3.08ms (59µs+3.02) within YAML::PP::Schema::load_subschemas which was called: # once (59µs+3.02ms) by YAML::PP::new at line 59 of YAML/PP.pm
sub load_subschemas {
9911µs my ($self, @schemas) = @_;
10012µs111µs my $yaml_version = $self->yaml_version;
# spent 11µs making 1 call to YAML::PP::Schema::yaml_version
10110s my $i = 0;
102126µs while ($i < @schemas) {
10310s my $item = $schemas[ $i ];
10412µs if ($item eq '+') {
105 $item = $DEFAULT_SCHEMA{ $yaml_version };
106 }
10710s $i++;
10815µs11µs if (blessed($item)) {
# spent 1µs making 1 call to Scalar::Util::blessed
109 $item->register(
110 schema => $self,
111 );
112 next;
113 }
11410s my @options;
11511µs while ($i < @schemas
116 and (
117 $schemas[ $i ] =~ m/^[^A-Za-z]/
118 or
119 $schemas[ $i ] =~ m/^[a-zA-Z0-9]+=/
120 )
121 ) {
122 push @options, $schemas[ $i ];
123 $i++;
124 }
125
12611µs my $class;
127116µs15µs if ($item =~ m/^\:(.*)/) {
# spent 5µs making 1 call to YAML::PP::Schema::CORE:match
128 $class = "$1";
129 unless ($class =~ m/\A[A-Za-z0-9_:]+\z/) {
130 die "Module name '$class' is invalid";
131 }
132 Module::Load::load $class;
133 }
134 else {
13512µs $class = "YAML::PP::Schema::$item";
136112µs19µs unless ($class =~ m/\A[A-Za-z0-9_:]+\z/) {
# spent 9µs making 1 call to YAML::PP::Schema::CORE:match
137 die "Module name '$class' is invalid";
138 }
13916µs14µs $LOADED_SCHEMA{ $item } ||= Module::Load::load $class;
# spent 4µs making 1 call to Module::Load::load
140 }
14119µs11.02ms $class->register(
# spent 1.02ms making 1 call to YAML::PP::Schema::Core::register
142 schema => $self,
143 options => \@options,
144 );
145
146 }
147}
148
149
# spent 422µs (401+21) within YAML::PP::Schema::add_resolver which was called 28 times, avg 15µs/call: # 6 times (64µs+4µs) by YAML::PP::Schema::Core::register at line 59 of YAML/PP/Schema/Core.pm, avg 11µs/call # 5 times (106µs+5µs) by YAML::PP::Schema::Core::register at line 31 of YAML/PP/Schema/Core.pm, avg 22µs/call # 3 times (45µs+5µs) by YAML::PP::Schema::Core::register at line 39 of YAML/PP/Schema/Core.pm, avg 17µs/call # 3 times (43µs+2µs) by YAML::PP::Schema::Core::register at line 35 of YAML/PP/Schema/Core.pm, avg 15µs/call # 3 times (28µs+1µs) by YAML::PP::Schema::Core::register at line 63 of YAML/PP/Schema/Core.pm, avg 10µs/call # 3 times (25µs+0s) by YAML::PP::Schema::Core::register at line 67 of YAML/PP/Schema/Core.pm, avg 8µs/call # once (41µs+0s) by YAML::PP::Schema::Core::register at line 40 of YAML/PP/Schema/Core.pm # once (20µs+2µs) by YAML::PP::Schema::Core::register at line 44 of YAML/PP/Schema/Core.pm # once (10µs+1000ns) by YAML::PP::Schema::Core::register at line 52 of YAML/PP/Schema/Core.pm # once (10µs+1000ns) by YAML::PP::Schema::Core::register at line 70 of YAML/PP/Schema/Core.pm # once (9µs+0s) by YAML::PP::Schema::Core::register at line 48 of YAML/PP/Schema/Core.pm
sub add_resolver {
1502825µs my ($self, %args) = @_;
151286µs my $tag = $args{tag};
152289µs my $rule = $args{match};
1532837µs2821µs my $resolvers = $self->resolvers;
# spent 21µs making 28 calls to YAML::PP::Schema::resolvers, avg 750ns/call
154288µs my ($type, @rule) = @$rule;
155286µs my $implicit = $args{implicit};
156285µs $implicit = 1 unless defined $implicit;
1572814µs my $resolver_list = [];
1582813µs if ($tag) {
159286µs if (ref $tag eq 'Regexp') {
160 my $res = $resolvers->{tags} ||= [];
161 push @$res, [ $tag, {} ];
162 push @$resolver_list, $res->[-1]->[1];
163 }
164 else {
1652817µs my $res = $resolvers->{tag}->{ $tag } ||= {};
1662815µs push @$resolver_list, $res;
167 }
168 }
169288µs if ($implicit) {
170 push @$resolver_list, $resolvers->{value} ||= {};
171 }
17228126µs for my $res (@$resolver_list) {
1735621µs if ($type eq 'equals') {
1744612µs my ($match, $value) = @rule;
1754638µs unless (exists $res->{equals}->{ $match }) {
176 $res->{equals}->{ $match } = $value;
177 }
1784616µs next;
179 }
180 elsif ($type eq 'regex') {
181814µs my ($match, $value) = @rule;
182828µs push @{ $res->{regex} }, [ $match => $value ];
183 }
184 elsif ($type eq 'all') {
18521µs my ($value) = @rule;
18621µs $res->{all} = $value;
187 }
188 }
189}
190
191sub add_sequence_resolver {
192 my ($self, %args) = @_;
193 return $self->add_collection_resolver(sequence => %args);
194}
195
196sub add_mapping_resolver {
197 my ($self, %args) = @_;
198 return $self->add_collection_resolver(mapping => %args);
199}
200
201sub add_collection_resolver {
202 my ($self, $type, %args) = @_;
203 my $tag = $args{tag};
204 my $implicit = $args{implicit};
205 my $resolvers = $self->resolvers;
206
207 if ($tag and ref $tag eq 'Regexp') {
208 my $res = $resolvers->{ $type }->{tags} ||= [];
209 push @$res, [ $tag, {
210 on_create => $args{on_create},
211 on_data => $args{on_data},
212 } ];
213 }
214 elsif ($tag) {
215 my $res = $resolvers->{ $type }->{tag}->{ $tag } ||= {
216 on_create => $args{on_create},
217 on_data => $args{on_data},
218 };
219 }
220}
221
222
# spent 211µs (189+22) within YAML::PP::Schema::add_representer which was called 28 times, avg 8µs/call: # 23 times (153µs+14µs) by YAML::PP::Schema::Core::register at line 89 of YAML/PP/Schema/Core.pm, avg 7µs/call # once (11µs+7µs) by YAML::PP::Schema::Core::register at line 75 of YAML/PP/Schema/Core.pm # once (13µs+0s) by YAML::PP::Schema::Core::register at line 83 of YAML/PP/Schema/Core.pm # once (5µs+1000ns) by YAML::PP::Schema::Core::register at line 93 of YAML/PP/Schema/Core.pm # once (4µs+0s) by YAML::PP::Schema::Core::register at line 100 of YAML/PP/Schema/Core.pm # once (3µs+0s) by YAML::PP::Schema::Core::register at line 79 of YAML/PP/Schema/Core.pm
sub add_representer {
2232817µs my ($self, %args) = @_;
224
2252824µs2822µs my $representers = $self->representers;
# spent 22µs making 28 calls to YAML::PP::Schema::representers, avg 786ns/call
226285µs if (my $flags = $args{flags}) {
22721µs my $rep = $representers->{flags};
22821µs push @$rep, \%args;
22926µs return;
230 }
231266µs if (my $regex = $args{regex}) {
23211µs my $rep = $representers->{regex};
23311µs push @$rep, \%args;
23412µs return;
235 }
236255µs if (my $regex = $args{class_matches}) {
237 my $rep = $representers->{class_matches};
238 push @$rep, [ $args{class_matches}, $args{code} ];
239 return;
240 }
241257µs if (my $class_equals = $args{class_equals}) {
24210s if ($] >= 5.036000 and $class_equals eq 'perl_experimental') {
243 $representers->{bool} = {
244 code => $args{code},
245 };
246 return;
247 }
24810s my $rep = $representers->{class_equals};
249 $rep->{ $class_equals } = {
250 code => $args{code},
25111µs };
25213µs return;
253 }
254245µs if (my $class_isa = $args{class_isa}) {
255 my $rep = $representers->{class_isa};
256 push @$rep, [ $args{class_isa}, $args{code} ];
257 return;
258 }
259249µs if (my $tied_equals = $args{tied_equals}) {
260 my $rep = $representers->{tied_equals};
261 $rep->{ $tied_equals } = {
262 code => $args{code},
263 };
264 return;
265 }
266248µs if (defined(my $equals = $args{equals})) {
267236µs my $rep = $representers->{equals};
268 $rep->{ $equals } = {
269 code => $args{code},
2702333µs };
2712345µs return;
272 }
27310s if (defined(my $scalarref = $args{scalarref})) {
274 $representers->{scalarref} = {
275 code => $args{code},
276 };
277 return;
278 }
27910s if (defined(my $refref = $args{refref})) {
280 $representers->{refref} = {
281 code => $args{code},
282 };
283 return;
284 }
28511µs if (defined(my $coderef = $args{coderef})) {
286 $representers->{coderef} = {
287 code => $args{code},
288 };
289 return;
290 }
29110s if (defined(my $glob = $args{glob})) {
292 $representers->{glob} = {
293 code => $args{code},
294 };
295 return;
296 }
29711µs if (my $undef = $args{undefined}) {
29811µs $representers->{undef} = $undef;
29913µs return;
300 }
301}
302
303
# spent 668ms (453+215) within YAML::PP::Schema::load_scalar which was called 20941 times, avg 32µs/call: # 20941 times (453ms+215ms) by YAML::PP::Constructor::scalar_event at line 287 of YAML/PP/Constructor.pm, avg 32µs/call
sub load_scalar {
304209414.55ms my ($self, $constructor, $event) = @_;
305209416.31ms my $tag = $event->{tag};
306209417.09ms my $value = $event->{value};
307
3082094117.3ms2094112.3ms my $resolvers = $self->resolvers;
# spent 12.3ms making 20941 calls to YAML::PP::Schema::resolvers, avg 586ns/call
309209412.48ms my $res;
310209418.30ms if ($tag) {
311 $res = $resolvers->{tag}->{ $tag };
312 if (not $res and my $matches = $resolvers->{tags}) {
313 for my $match (@$matches) {
314 my ($re, $rule) = @$match;
315 if ($tag =~ $re) {
316 $res = $rule;
317 last;
318 }
319 }
320 }
321 }
322 else {
323209414.31ms $res = $resolvers->{value};
3242094112.3ms if ($event->{style} ne YAML_PLAIN_SCALAR_STYLE) {
325 return $value;
326 }
327 }
328
329188848.85ms if (my $equals = $res->{equals}) {
3301888417.9ms if (exists $equals->{ $value }) {
3311024507µs my $res = $equals->{ $value };
33210243.70ms9896.84ms if (ref $res eq 'CODE') {
# spent 4.09ms making 581 calls to YAML::PP::Schema::_bool_jsonpp_true, avg 7µs/call # spent 2.74ms making 408 calls to YAML::PP::Schema::_bool_jsonpp_false, avg 7µs/call
333 return $res->($constructor, $event);
334 }
3353557µs return $res;
336 }
337 }
338178607.26ms if (my $regex = $res->{regex}) {
3391786010.3ms for my $item (@$regex) {
3407099919.9ms my ($re, $sub) = @$item;
34170999362ms141998172ms my @matches = $value =~ $re;
# spent 89.3ms making 70999 calls to YAML::PP::Schema::CORE:regcomp, avg 1µs/call # spent 83.2ms making 70999 calls to YAML::PP::Schema::CORE:match, avg 1µs/call
3427099930.9ms147315µs if (@matches) {
# spent 315µs making 147 calls to YAML::PP::Schema::JSON::_to_int, avg 2µs/call
343 return $sub->($constructor, $event, \@matches);
344 }
345 }
346 }
347177136.73ms if (my $catch_all = $res->{all}) {
3481771359.9ms1771323.4ms if (ref $catch_all eq 'CODE') {
# spent 23.4ms making 17713 calls to YAML::PP::Schema::Core::__ANON__[YAML/PP/Schema/Core.pm:70], avg 1µs/call
349 return $catch_all->($constructor, $event);
350 }
351 return $catch_all;
352 }
353 return $value;
354}
355
356
# spent 4.07ms (3.72+348µs) within YAML::PP::Schema::create_sequence which was called 645 times, avg 6µs/call: # 645 times (3.72ms+348µs) by YAML::PP::Constructor::sequence_start_event at line 229 of YAML/PP/Constructor.pm, avg 6µs/call
sub create_sequence {
357645297µs my ($self, $constructor, $event) = @_;
358645333µs my $tag = $event->{tag};
359645290µs my $data = [];
360645110µs my $on_data;
361
362645911µs645348µs my $resolvers = $self->resolvers->{sequence};
# spent 348µs making 645 calls to YAML::PP::Schema::resolvers, avg 540ns/call
363645211µs if ($tag) {
364 if (my $equals = $resolvers->{tag}->{ $tag }) {
365 my $on_create = $equals->{on_create};
366 $on_data = $equals->{on_data};
367 $on_create and $data = $on_create->($constructor, $event);
368 return ($data, $on_data);
369 }
370 if (my $matches = $resolvers->{tags}) {
371 for my $match (@$matches) {
372 my ($re, $actions) = @$match;
373 my $on_create = $actions->{on_create};
374 if ($tag =~ $re) {
375 $on_data = $actions->{on_data};
376 $on_create and $data = $on_create->($constructor, $event);
377 return ($data, $on_data);
378 }
379 }
380 }
381 }
382
3836451.53ms return ($data, $on_data);
384}
385
386
# spent 39.3ms (34.8+4.48) within YAML::PP::Schema::create_mapping which was called 6939 times, avg 6µs/call: # 6939 times (34.8ms+4.48ms) by YAML::PP::Constructor::mapping_start_event at line 128 of YAML/PP/Constructor.pm, avg 6µs/call
sub create_mapping {
38769391.96ms my ($self, $constructor, $event) = @_;
38869392.86ms my $tag = $event->{tag};
38969392.71ms my $data = {};
3906939949µs my $on_data;
391
39269399.23ms69394.48ms my $resolvers = $self->resolvers->{mapping};
# spent 4.48ms making 6939 calls to YAML::PP::Schema::resolvers, avg 645ns/call
39369391.28ms if ($tag) {
394 if (my $equals = $resolvers->{tag}->{ $tag }) {
395 my $on_create = $equals->{on_create};
396 $on_data = $equals->{on_data};
397 $on_create and $data = $on_create->($constructor, $event);
398 return ($data, $on_data);
399 }
400 if (my $matches = $resolvers->{tags}) {
401 for my $match (@$matches) {
402 my ($re, $actions) = @$match;
403 my $on_create = $actions->{on_create};
404 if ($tag =~ $re) {
405 $on_data = $actions->{on_data};
406 $on_create and $data = $on_create->($constructor, $event);
407 return ($data, $on_data);
408 }
409 }
410 }
411 }
412
413693915.0ms return ($data, $on_data);
414}
415
4165812.68ms5811.65ms
# spent 4.09ms (2.45+1.65) within YAML::PP::Schema::_bool_jsonpp_true which was called 581 times, avg 7µs/call: # 581 times (2.45ms+1.65ms) by YAML::PP::Schema::load_scalar at line 332, avg 7µs/call
sub _bool_jsonpp_true { JSON::PP::true() }
# spent 1.65ms making 581 calls to JSON::PP::true, avg 3µs/call
417
418sub _bool_booleanpm_true { boolean::true() }
419
420sub _bool_perl_true { !!1 }
421
4224081.77ms4081.07ms
# spent 2.74ms (1.67+1.07) within YAML::PP::Schema::_bool_jsonpp_false which was called 408 times, avg 7µs/call: # 408 times (1.67ms+1.07ms) by YAML::PP::Schema::load_scalar at line 332, avg 7µs/call
sub _bool_jsonpp_false { JSON::PP::false() }
# spent 1.07ms making 408 calls to JSON::PP::false, avg 3µs/call
423
424sub _bool_booleanpm_false { boolean::false() }
425
426sub _bool_perl_false { !!0 }
427
42815µs1;
429
430__END__
 
# spent 83.2ms within YAML::PP::Schema::CORE:match which was called 71001 times, avg 1µs/call: # 70999 times (83.2ms+0s) by YAML::PP::Schema::load_scalar at line 341, avg 1µs/call # once (9µs+0s) by YAML::PP::Schema::load_subschemas at line 136 # once (5µs+0s) by YAML::PP::Schema::load_subschemas at line 127
sub YAML::PP::Schema::CORE:match; # opcode
# spent 89.3ms within YAML::PP::Schema::CORE:regcomp which was called 70999 times, avg 1µs/call: # 70999 times (89.3ms+0s) by YAML::PP::Schema::load_scalar at line 341, avg 1µs/call
sub YAML::PP::Schema::CORE:regcomp; # opcode