← Index
NYTProf Performance Profile   « line view »
For ../prof.pl
  Run on Wed Dec 14 15:33:55 2022
Reported on Wed Dec 14 15:40:04 2022

Filename/Users/ether/.perlbrew/libs/36.0@std/lib/perl5/YAML/PP/Loader.pm
StatementsExecuted 39 statements in 1.86ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1118.50ms24.4msYAML::PP::Loader::::BEGIN@8YAML::PP::Loader::BEGIN@8
1113.11ms3.57msYAML::PP::Loader::::BEGIN@9YAML::PP::Loader::BEGIN@9
11135µs38µsYAML::PP::::BEGIN@2.284 YAML::PP::BEGIN@2.284
11128µs144µsYAML::PP::Loader::::newYAML::PP::Loader::new
11123µs6.54sYAML::PP::Loader::::loadYAML::PP::Loader::load
11118µs6.54sYAML::PP::Loader::::load_fileYAML::PP::Loader::load_file
1119µs9µsYAML::PP::Loader::::BEGIN@10YAML::PP::Loader::BEGIN@10
3319µs9µsYAML::PP::::__ANON__ YAML::PP::__ANON__ (xsub)
1118µs43µsYAML::PP::::BEGIN@3 YAML::PP::BEGIN@3
3315µs5µsYAML::PP::Loader::::__ANON__YAML::PP::Loader::__ANON__ (xsub)
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
2237µs241µs
# spent 38µs (35+3) within YAML::PP::BEGIN@2.284 which was called: # once (35µs+3µs) by YAML::PP::BEGIN@10 at line 2
use strict;
# spent 38µs making 1 call to YAML::PP::BEGIN@2.284 # spent 3µs making 1 call to strict::import
3242µs278µs
# spent 43µs (8+35) within YAML::PP::BEGIN@3 which was called: # once (8µs+35µs) by YAML::PP::BEGIN@10 at line 3
use warnings;
# spent 43µs making 1 call to YAML::PP::BEGIN@3 # spent 35µs making 1 call to warnings::import
4package YAML::PP::Loader;
5
610sour $VERSION = '0.035'; # VERSION
7
82621µs224.4ms
# spent 24.4ms (8.50+15.9) within YAML::PP::Loader::BEGIN@8 which was called: # once (8.50ms+15.9ms) by YAML::PP::BEGIN@10 at line 8
use YAML::PP::Parser;
# spent 24.4ms making 1 call to YAML::PP::Loader::BEGIN@8 # spent 3µs making 1 call to YAML::PP::Loader::__ANON__
92679µs23.57ms
# spent 3.57ms (3.11+460µs) within YAML::PP::Loader::BEGIN@9 which was called: # once (3.11ms+460µs) by YAML::PP::BEGIN@10 at line 9
use YAML::PP::Constructor;
# spent 3.57ms making 1 call to YAML::PP::Loader::BEGIN@9 # spent 2µs making 1 call to YAML::PP::Loader::__ANON__
102418µs29µs
# spent 9µs within YAML::PP::Loader::BEGIN@10 which was called: # once (9µs+0s) by YAML::PP::BEGIN@10 at line 10
use YAML::PP::Reader;
# spent 9µs making 1 call to YAML::PP::Loader::BEGIN@10 # spent 0s making 1 call to YAML::PP::Loader::__ANON__
11
12
# spent 144µs (28+116) within YAML::PP::Loader::new which was called: # once (28µs+116µs) by YAML::PP::new at line 65 of YAML/PP.pm
sub new {
1313µs my ($class, %args) = @_;
14
1511µ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};
1810s my $duplicate_keys = delete $args{duplicate_keys};
1910s my $schemas = delete $args{schemas};
2010s $schemas ||= {
21 '1.2' => YAML::PP->default_schema(
22 boolean => 'perl',
23 )
24 };
25
2615µs166µs my $constructor = delete $args{constructor} || YAML::PP::Constructor->new(
# spent 66µ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};
3413µs136µs unless ($parser) {
# spent 36µ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µs214µs unless ($parser->receiver) {
# spent 11µ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
4310s if (keys %args) {
44 die "Unexpected arguments: " . join ', ', sort keys %args;
45 }
4612µs my $self = bless {
47 parser => $parser,
48 constructor => $constructor,
49 }, $class;
50110µ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} }
6513µ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.54s (18µs+6.54) within YAML::PP::Loader::load_file which was called: # once (18µs+6.54s) by YAML::PP::load_file at line 154 of YAML/PP.pm
sub load_file {
8310s my ($self, $file) = @_;
8419µs316µ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 1µs making 1 call to YAML::PP::Reader::new
8516µs16.54s $self->load();
# spent 6.54s making 1 call to YAML::PP::Loader::load
86}
87
88
# spent 6.54s (23µs+6.54) within YAML::PP::Loader::load which was called: # once (23µs+6.54s) by YAML::PP::Loader::load_file at line 85
sub load {
8910s 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
9312µs121µs $constructor->init;
# spent 21µs making 1 call to YAML::PP::Constructor::init
9412µs16.54s $parser->parse();
# spent 6.54s making 1 call to YAML::PP::Parser::parse
95
9611µs10s my $docs = $constructor->docs;
# spent 0s making 1 call to YAML::PP::Constructor::docs
9713µs return wantarray ? @$docs : $docs->[0];
98}
99
100
10114µs1;
 
# spent 5µs within YAML::PP::Loader::__ANON__ which was called 3 times, avg 2µs/call: # once (3µs+0s) by YAML::PP::Loader::BEGIN@8 at line 8 # once (2µs+0s) by YAML::PP::Loader::BEGIN@9 at line 9 # once (0s+0s) by YAML::PP::Loader::BEGIN@10 at line 10
sub YAML::PP::Loader::__ANON__; # xsub
# spent 9µs within YAML::PP::__ANON__ which was called 3 times, avg 3µs/call: # once (6µ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
sub YAML::PP::__ANON__; # xsub