| Filename | /Users/ether/.perlbrew/libs/36.0@std/lib/perl5/YAML/PP/Loader.pm |
| Statements | Executed 39 statements in 2.35ms |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 1 | 1 | 1 | 10.6ms | 39.5ms | YAML::PP::Loader::BEGIN@8 |
| 1 | 1 | 1 | 5.24ms | 5.65ms | YAML::PP::Loader::BEGIN@9 |
| 1 | 1 | 1 | 54µs | 216µs | YAML::PP::Loader::new |
| 1 | 1 | 1 | 34µs | 38µs | YAML::PP::BEGIN@2.285 |
| 1 | 1 | 1 | 32µs | 33µs | YAML::PP::Loader::BEGIN@10 |
| 1 | 1 | 1 | 22µs | 6.98s | YAML::PP::Loader::load_file |
| 1 | 1 | 1 | 18µs | 6.98s | YAML::PP::Loader::load |
| 1 | 1 | 1 | 5µs | 34µs | YAML::PP::BEGIN@3 |
| 2 | 2 | 1 | 3µs | 3µs | YAML::PP::Loader::parser |
| 1 | 1 | 1 | 1µs | 1µs | YAML::PP::Loader::constructor |
| 0 | 0 | 0 | 0s | 0s | YAML::PP::Loader::clone |
| 0 | 0 | 0 | 0s | 0s | YAML::PP::Loader::filename |
| 0 | 0 | 0 | 0s | 0s | YAML::PP::Loader::load_string |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | # ABSTRACT: Load YAML into data with Parser and Constructor | ||||
| 2 | 2 | 32µs | 2 | 42µs | # spent 38µs (34+4) within YAML::PP::BEGIN@2.285 which was called:
# once (34µs+4µs) by YAML::PP::BEGIN@10 at line 2 # spent 38µs making 1 call to YAML::PP::BEGIN@2.285
# spent 4µs making 1 call to strict::import |
| 3 | 2 | 33µs | 2 | 63µs | # spent 34µs (5+29) within YAML::PP::BEGIN@3 which was called:
# once (5µs+29µs) by YAML::PP::BEGIN@10 at line 3 # spent 34µs making 1 call to YAML::PP::BEGIN@3
# spent 29µ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 | 454µs | 2 | 39.5ms | # spent 39.5ms (10.6+28.9) within YAML::PP::Loader::BEGIN@8 which was called:
# once (10.6ms+28.9ms) by YAML::PP::BEGIN@10 at line 8 # spent 39.5ms making 1 call to YAML::PP::Loader::BEGIN@8
# spent 3µs making 1 call to YAML::PP::Loader::__ANON__ |
| 9 | 2 | 874µs | 2 | 5.65ms | # spent 5.65ms (5.24+413µs) within YAML::PP::Loader::BEGIN@9 which was called:
# once (5.24ms+413µs) by YAML::PP::BEGIN@10 at line 9 # spent 5.65ms making 1 call to YAML::PP::Loader::BEGIN@9
# spent 4µs making 1 call to YAML::PP::Loader::__ANON__ |
| 10 | 2 | 887µs | 2 | 34µs | # spent 33µs (32+1) within YAML::PP::Loader::BEGIN@10 which was called:
# once (32µs+1µs) by YAML::PP::BEGIN@10 at line 10 # spent 33µs making 1 call to YAML::PP::Loader::BEGIN@10
# spent 1µs making 1 call to YAML::PP::Loader::__ANON__ |
| 11 | |||||
| 12 | # spent 216µs (54+162) within YAML::PP::Loader::new which was called:
# once (54µs+162µs) by YAML::PP::new at line 65 of YAML/PP.pm | ||||
| 13 | 1 | 5µ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 | 0s | my $preserve = delete $args{preserve}; | ||
| 18 | 1 | 1µs | my $duplicate_keys = delete $args{duplicate_keys}; | ||
| 19 | 1 | 0s | 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 | 3µs | 1 | 85µs | my $constructor = delete $args{constructor} || YAML::PP::Constructor->new( # spent 85µ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 | 1µs | my $parser = delete $args{parser}; | ||
| 34 | 1 | 5µs | 1 | 52µs | unless ($parser) { # spent 52µ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 | 25µs | unless ($parser->receiver) { # spent 21µs making 1 call to YAML::PP::Parser::set_receiver
# spent 4µs making 1 call to YAML::PP::Parser::receiver |
| 40 | $parser->set_receiver($constructor); | ||||
| 41 | } | ||||
| 42 | |||||
| 43 | 1 | 0s | if (keys %args) { | ||
| 44 | die "Unexpected arguments: " . join ', ', sort keys %args; | ||||
| 45 | } | ||||
| 46 | 1 | 3µ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 | 6µ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 6.98s (22µs+6.98) within YAML::PP::Loader::load_file which was called:
# once (22µs+6.98s) by YAML::PP::load_file at line 154 of YAML/PP.pm | ||||
| 83 | 1 | 0s | my ($self, $file) = @_; | ||
| 84 | 1 | 10µs | 3 | 17µs | $self->parser->set_reader(YAML::PP::Reader::File->new( input => $file )); # spent 13µs making 1 call to YAML::PP::Parser::set_reader
# spent 2µs making 1 call to YAML::PP::Loader::parser
# spent 2µs making 1 call to YAML::PP::Reader::new |
| 85 | 1 | 6µs | 1 | 6.98s | $self->load(); # spent 6.98s making 1 call to YAML::PP::Loader::load |
| 86 | } | ||||
| 87 | |||||
| 88 | # spent 6.98s (18µs+6.98) within YAML::PP::Loader::load which was called:
# once (18µs+6.98s) by YAML::PP::Loader::load_file at line 85 | ||||
| 89 | 1 | 1µs | my ($self) = @_; | ||
| 90 | 1 | 0s | 1 | 1µs | my $parser = $self->parser; # spent 1µs making 1 call to YAML::PP::Loader::parser |
| 91 | 1 | 1µs | 1 | 1µs | my $constructor = $self->constructor; # spent 1µs making 1 call to YAML::PP::Loader::constructor |
| 92 | |||||
| 93 | 1 | 1µs | 1 | 24µs | $constructor->init; # spent 24µs making 1 call to YAML::PP::Constructor::init |
| 94 | 1 | 3µs | 1 | 6.98s | $parser->parse(); # spent 6.98s making 1 call to YAML::PP::Parser::parse |
| 95 | |||||
| 96 | 1 | 2µs | 1 | 0s | my $docs = $constructor->docs; # spent 0s making 1 call to YAML::PP::Constructor::docs |
| 97 | 1 | 5µs | return wantarray ? @$docs : $docs->[0]; | ||
| 98 | } | ||||
| 99 | |||||
| 100 | |||||
| 101 | 1 | 6µs | 1; |