Filename | /Users/ether/.perlbrew/libs/36.0@std/lib/perl5/YAML/PP/Loader.pm |
Statements | Executed 39 statements in 1.65ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1 | 1 | 1 | 6.16ms | 18.7ms | BEGIN@8 | YAML::PP::Loader::
1 | 1 | 1 | 2.45ms | 2.68ms | BEGIN@9 | YAML::PP::Loader::
1 | 1 | 1 | 35µs | 154µs | new | YAML::PP::Loader::
1 | 1 | 1 | 30µs | 34µs | BEGIN@2.284 | YAML::PP::
1 | 1 | 1 | 21µs | 7.34s | load_file | YAML::PP::Loader::
1 | 1 | 1 | 17µs | 7.34s | load | YAML::PP::Loader::
1 | 1 | 1 | 7µs | 104µs | BEGIN@3 | YAML::PP::
3 | 3 | 1 | 6µs | 6µs | __ANON__ (xsub) | YAML::PP::
1 | 1 | 1 | 5µs | 6µs | BEGIN@10 | YAML::PP::Loader::
3 | 3 | 1 | 4µs | 4µs | __ANON__ (xsub) | YAML::PP::Loader::
2 | 2 | 1 | 3µs | 3µs | parser | YAML::PP::Loader::
1 | 1 | 1 | 1µs | 1µs | constructor | YAML::PP::Loader::
0 | 0 | 0 | 0s | 0s | clone | YAML::PP::Loader::
0 | 0 | 0 | 0s | 0s | filename | YAML::PP::Loader::
0 | 0 | 0 | 0s | 0s | load_string | YAML::PP::Loader::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | # ABSTRACT: Load YAML into data with Parser and Constructor | ||||
2 | 2 | 35µs | 2 | 38µs | # spent 34µs (30+4) within YAML::PP::BEGIN@2.284 which was called:
# once (30µs+4µs) by YAML::PP::BEGIN@10 at line 2 # spent 34µs making 1 call to YAML::PP::BEGIN@2.284
# spent 4µs making 1 call to strict::import |
3 | 2 | 55µs | 2 | 201µs | # spent 104µs (7+97) within YAML::PP::BEGIN@3 which was called:
# once (7µs+97µs) by YAML::PP::BEGIN@10 at line 3 # spent 104µs making 1 call to YAML::PP::BEGIN@3
# spent 97µs making 1 call to warnings::import |
4 | package YAML::PP::Loader; | ||||
5 | |||||
6 | 1 | 1µs | our $VERSION = '0.035'; # VERSION | ||
7 | |||||
8 | 2 | 508µs | 2 | 18.7ms | # spent 18.7ms (6.16+12.6) within YAML::PP::Loader::BEGIN@8 which was called:
# once (6.16ms+12.6ms) by YAML::PP::BEGIN@10 at line 8 # spent 18.7ms making 1 call to YAML::PP::Loader::BEGIN@8
# spent 1µs making 1 call to YAML::PP::Loader::__ANON__ |
9 | 2 | 519µs | 2 | 2.68ms | # spent 2.68ms (2.45+235µs) within YAML::PP::Loader::BEGIN@9 which was called:
# once (2.45ms+235µs) by YAML::PP::BEGIN@10 at line 9 # spent 2.68ms making 1 call to YAML::PP::Loader::BEGIN@9
# spent 2µs making 1 call to YAML::PP::Loader::__ANON__ |
10 | 2 | 463µs | 2 | 7µs | # spent 6µs (5+1000ns) within YAML::PP::Loader::BEGIN@10 which was called:
# once (5µs+1000ns) by YAML::PP::BEGIN@10 at line 10 # spent 6µs making 1 call to YAML::PP::Loader::BEGIN@10
# spent 1µs making 1 call to YAML::PP::Loader::__ANON__ |
11 | |||||
12 | # spent 154µs (35+119) within YAML::PP::Loader::new which was called:
# once (35µs+119µs) by YAML::PP::new at line 65 of YAML/PP.pm | ||||
13 | 1 | 4µs | my ($class, %args) = @_; | ||
14 | |||||
15 | 1 | 2µs | my $cyclic_refs = delete $args{cyclic_refs} || 'allow'; | ||
16 | 1 | 1µs | my $default_yaml_version = delete $args{default_yaml_version} || '1.2'; | ||
17 | 1 | 1µs | my $preserve = delete $args{preserve}; | ||
18 | 1 | 1µs | my $duplicate_keys = delete $args{duplicate_keys}; | ||
19 | 1 | 1µs | my $schemas = delete $args{schemas}; | ||
20 | 1 | 1µs | $schemas ||= { | ||
21 | '1.2' => YAML::PP->default_schema( | ||||
22 | boolean => 'perl', | ||||
23 | ) | ||||
24 | }; | ||||
25 | |||||
26 | 1 | 5µs | 1 | 67µs | my $constructor = delete $args{constructor} || YAML::PP::Constructor->new( # spent 67µs making 1 call to YAML::PP::Constructor::new |
27 | schemas => $schemas, | ||||
28 | cyclic_refs => $cyclic_refs, | ||||
29 | default_yaml_version => $default_yaml_version, | ||||
30 | preserve => $preserve, | ||||
31 | duplicate_keys => $duplicate_keys, | ||||
32 | ); | ||||
33 | 1 | 0s | my $parser = delete $args{parser}; | ||
34 | 1 | 5µs | 1 | 41µs | unless ($parser) { # spent 41µs making 1 call to YAML::PP::Parser::new |
35 | $parser = YAML::PP::Parser->new( | ||||
36 | default_yaml_version => $default_yaml_version, | ||||
37 | ); | ||||
38 | } | ||||
39 | 1 | 4µs | 2 | 11µs | unless ($parser->receiver) { # spent 8µs making 1 call to YAML::PP::Parser::set_receiver
# spent 3µs making 1 call to YAML::PP::Parser::receiver |
40 | $parser->set_receiver($constructor); | ||||
41 | } | ||||
42 | |||||
43 | 1 | 1µs | if (keys %args) { | ||
44 | die "Unexpected arguments: " . join ', ', sort keys %args; | ||||
45 | } | ||||
46 | 1 | 1µs | my $self = bless { | ||
47 | parser => $parser, | ||||
48 | constructor => $constructor, | ||||
49 | }, $class; | ||||
50 | 1 | 4µs | return $self; | ||
51 | } | ||||
52 | |||||
53 | sub clone { | ||||
54 | my ($self) = @_; | ||||
55 | my $clone = { | ||||
56 | parser => $self->parser->clone, | ||||
57 | constructor => $self->constructor->clone, | ||||
58 | }; | ||||
59 | bless $clone, ref $self; | ||||
60 | $clone->parser->set_receiver($clone->constructor); | ||||
61 | return $clone; | ||||
62 | } | ||||
63 | |||||
64 | 2 | 7µs | sub parser { return $_[0]->{parser} } | ||
65 | 1 | 2µs | # spent 1µs within YAML::PP::Loader::constructor which was called:
# once (1µs+0s) by YAML::PP::Loader::load at line 91 | ||
66 | |||||
67 | sub filename { | ||||
68 | my ($self) = @_; | ||||
69 | my $reader = $self->parser->reader; | ||||
70 | if ($reader->isa('YAML::PP::Reader::File')) { | ||||
71 | return $reader->input; | ||||
72 | } | ||||
73 | die "Reader is not a YAML::PP::Reader::File"; | ||||
74 | } | ||||
75 | |||||
76 | sub load_string { | ||||
77 | my ($self, $yaml) = @_; | ||||
78 | $self->parser->set_reader(YAML::PP::Reader->new( input => $yaml )); | ||||
79 | $self->load(); | ||||
80 | } | ||||
81 | |||||
82 | # spent 7.34s (21µs+7.34) within YAML::PP::Loader::load_file which was called:
# once (21µs+7.34s) by YAML::PP::load_file at line 154 of YAML/PP.pm | ||||
83 | 1 | 1µs | my ($self, $file) = @_; | ||
84 | 1 | 9µs | 3 | 23µs | $self->parser->set_reader(YAML::PP::Reader::File->new( input => $file )); # spent 17µs making 1 call to YAML::PP::Parser::set_reader
# spent 4µs making 1 call to YAML::PP::Reader::new
# spent 2µs making 1 call to YAML::PP::Loader::parser |
85 | 1 | 5µs | 1 | 7.34s | $self->load(); # spent 7.34s making 1 call to YAML::PP::Loader::load |
86 | } | ||||
87 | |||||
88 | # spent 7.34s (17µs+7.34) within YAML::PP::Loader::load which was called:
# once (17µs+7.34s) by YAML::PP::Loader::load_file at line 85 | ||||
89 | 1 | 1µs | my ($self) = @_; | ||
90 | 1 | 1µs | 1 | 1µs | my $parser = $self->parser; # spent 1µs making 1 call to YAML::PP::Loader::parser |
91 | 1 | 3µs | 1 | 1µs | my $constructor = $self->constructor; # spent 1µs making 1 call to YAML::PP::Loader::constructor |
92 | |||||
93 | 1 | 2µs | 1 | 34µs | $constructor->init; # spent 34µs making 1 call to YAML::PP::Constructor::init |
94 | 1 | 4µs | 1 | 7.34s | $parser->parse(); # spent 7.34s making 1 call to YAML::PP::Parser::parse |
95 | |||||
96 | 1 | 1µs | 1 | 1µs | my $docs = $constructor->docs; # spent 1µs making 1 call to YAML::PP::Constructor::docs |
97 | 1 | 3µs | return wantarray ? @$docs : $docs->[0]; | ||
98 | } | ||||
99 | |||||
100 | |||||
101 | 1 | 4µs | 1; | ||
sub YAML::PP::Loader::__ANON__; # xsub | |||||
# spent 6µs within YAML::PP::__ANON__ which was called 3 times, avg 2µs/call:
# once (3µs+0s) by YAML::PP::BEGIN@8 at line 8 of YAML/PP.pm
# once (2µs+0s) by YAML::PP::BEGIN@11 at line 11 of YAML/PP.pm
# once (1µs+0s) by YAML::PP::BEGIN@10 at line 10 of YAML/PP.pm |