← 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/Loader.pm
StatementsExecuted 39 statements in 2.35ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
11110.6ms39.5msYAML::PP::Loader::::BEGIN@8YAML::PP::Loader::BEGIN@8
1115.24ms5.65msYAML::PP::Loader::::BEGIN@9YAML::PP::Loader::BEGIN@9
11154µs216µsYAML::PP::Loader::::newYAML::PP::Loader::new
11134µs38µsYAML::PP::::BEGIN@2.285 YAML::PP::BEGIN@2.285
11132µs33µsYAML::PP::Loader::::BEGIN@10YAML::PP::Loader::BEGIN@10
11122µs6.98sYAML::PP::Loader::::load_fileYAML::PP::Loader::load_file
11118µs6.98sYAML::PP::Loader::::loadYAML::PP::Loader::load
1115µs34µsYAML::PP::::BEGIN@3 YAML::PP::BEGIN@3
2213µs3µsYAML::PP::Loader::::parserYAML::PP::Loader::parser
1111µs1µsYAML::PP::Loader::::constructorYAML::PP::Loader::constructor
0000s0sYAML::PP::Loader::::cloneYAML::PP::Loader::clone
0000s0sYAML::PP::Loader::::filenameYAML::PP::Loader::filename
0000s0sYAML::PP::Loader::::load_stringYAML::PP::Loader::load_string
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1# ABSTRACT: Load YAML into data with Parser and Constructor
2232µs242µ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
use strict;
# spent 38µs making 1 call to YAML::PP::BEGIN@2.285 # spent 4µs making 1 call to strict::import
3233µs263µ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
use warnings;
# spent 34µs making 1 call to YAML::PP::BEGIN@3 # spent 29µs making 1 call to warnings::import
4package YAML::PP::Loader;
5
611µsour $VERSION = '0.035'; # VERSION
7
82454µs239.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
use YAML::PP::Parser;
# spent 39.5ms making 1 call to YAML::PP::Loader::BEGIN@8 # spent 3µs making 1 call to YAML::PP::Loader::__ANON__
92874µs25.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
use YAML::PP::Constructor;
# spent 5.65ms making 1 call to YAML::PP::Loader::BEGIN@9 # spent 4µs making 1 call to YAML::PP::Loader::__ANON__
102887µs234µ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
use YAML::PP::Reader;
# 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
sub new {
1315µs my ($class, %args) = @_;
14
1512µs my $cyclic_refs = delete $args{cyclic_refs} || 'allow';
1611µs my $default_yaml_version = delete $args{default_yaml_version} || '1.2';
1710s my $preserve = delete $args{preserve};
1811µs my $duplicate_keys = delete $args{duplicate_keys};
1910s my $schemas = delete $args{schemas};
2011µs $schemas ||= {
21 '1.2' => YAML::PP->default_schema(
22 boolean => 'perl',
23 )
24 };
25
2613µs185µ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 );
3311µs my $parser = delete $args{parser};
3415µs152µ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 }
3914µs225µ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
4310s if (keys %args) {
44 die "Unexpected arguments: " . join ', ', sort keys %args;
45 }
4613µs my $self = bless {
47 parser => $parser,
48 constructor => $constructor,
49 }, $class;
5014µs return $self;
51}
52
53sub 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
6426µs
# spent 3µs within YAML::PP::Loader::parser which was called 2 times, avg 2µs/call: # once (2µs+0s) by YAML::PP::Loader::load_file at line 84 # once (1µs+0s) by YAML::PP::Loader::load at line 90
sub parser { return $_[0]->{parser} }
6512µs
# spent 1µs within YAML::PP::Loader::constructor which was called: # once (1µs+0s) by YAML::PP::Loader::load at line 91
sub constructor { return $_[0]->{constructor} }
66
67sub 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
76sub 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
sub load_file {
8310s my ($self, $file) = @_;
84110µs317µ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
8516µs16.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
sub load {
8911µs my ($self) = @_;
9010s11µs my $parser = $self->parser;
# spent 1µs making 1 call to YAML::PP::Loader::parser
9111µs11µs my $constructor = $self->constructor;
# spent 1µs making 1 call to YAML::PP::Loader::constructor
92
9311µs124µs $constructor->init;
# spent 24µs making 1 call to YAML::PP::Constructor::init
9413µs16.98s $parser->parse();
# spent 6.98s making 1 call to YAML::PP::Parser::parse
95
9612µs10s my $docs = $constructor->docs;
# spent 0s making 1 call to YAML::PP::Constructor::docs
9715µs return wantarray ? @$docs : $docs->[0];
98}
99
100
10116µs1;