Profile of lib/PONAPI/Server/ConfigReader.pm

← Index
NYTProf Performance Profile «line view»
For script/ponapi
Run on Wed Feb 10 15:51:26 2016
Reported on Thu Feb 11 09:43:10 2016

Filename | /home/mickey/git_tree/PONAPI/Server/lib/PONAPI/Server/ConfigReader.pm
Statements | Executed 47 statements in 1.06ms

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
1 | 1 | 1 | 1.82ms | 358ms | PONAPI::Server::ConfigReader::::BEGIN@4PONAPI::Server::ConfigReader::BEGIN@4
1 | 1 | 1 | 972µs | 33.4ms | PONAPI::Server::ConfigReader::::BEGIN@8PONAPI::Server::ConfigReader::BEGIN@8
1 | 1 | 1 | 830µs | 1.00s | PONAPI::Server::ConfigReader::::BEGIN@10PONAPI::Server::ConfigReader::BEGIN@10
1 | 1 | 1 | 26µs | 467µs | PONAPI::Server::ConfigReader::::read_configPONAPI::Server::ConfigReader::read_config
1 | 1 | 1 | 17µs | 356µs | PONAPI::Server::ConfigReader::::_build_confPONAPI::Server::ConfigReader::_build_conf
1 | 1 | 1 | 13µs | 16µs | PONAPI::Server::ConfigReader::::_set_server_send_headerPONAPI::Server::ConfigReader::_set_server_send_header
1 | 1 | 1 | 10µs | 12µs | PONAPI::Server::ConfigReader::::_set_server_relative_linksPONAPI::Server::ConfigReader::_set_server_relative_links
1 | 1 | 1 | 9µs | 11µs | PONAPI::Server::ConfigReader::::_set_repositoryPONAPI::Server::ConfigReader::_set_repository
1 | 1 | 1 | 9µs | 1.15ms | PONAPI::Server::ConfigReader::::BEGIN@6PONAPI::Server::ConfigReader::BEGIN@6
1 | 1 | 1 | 9µs | 91µs | PONAPI::Server::ConfigReader::::BEGIN@113PONAPI::Server::ConfigReader::BEGIN@113
1 | 1 | 1 | 8µs | 11µs | PONAPI::Server::ConfigReader::::_set_server_self_linkPONAPI::Server::ConfigReader::_set_server_self_link
1 | 1 | 1 | 8µs | 382µs | PONAPI::Server::ConfigReader::::_set_server_json_api_versionPONAPI::Server::ConfigReader::_set_server_json_api_version
1 | 1 | 1 | 8µs | 9µs | PONAPI::Server::ConfigReader::::_set_server_sortingPONAPI::Server::ConfigReader::_set_server_sorting
1 | 1 | 1 | 7µs | 7µs | PONAPI::Server::ConfigReader::::BEGIN@7PONAPI::Server::ConfigReader::BEGIN@7
1 | 1 | 1 | 7µs | 41µs | PONAPI::Server::ConfigReader::::__ANON__[lib/PONAPI/Server/ConfigReader.pm:15]PONAPI::Server::ConfigReader::__ANON__[lib/PONAPI/Server/ConfigReader.pm:15]
0 | 0 | 0 | 0s | 0s | PONAPI::Server::ConfigReader::::_set_server_respond_to_updates_statusPONAPI::Server::ConfigReader::_set_server_respond_to_updates_status

Call graph for these subroutines as a Graphviz dot language file.

Line | State ments | Time on line | Calls | Time in subs | Code
--- | --- | --- | --- | --- | ---
1 |  |  |  |  | # ABSTRACT: Web-Server - configuration handler
2 |  |  |  |  | package PONAPI::Server::ConfigReader;
3 |  |  |  |  |
4 | 2 | 108µs | 2 | 361ms | # spent 358ms (1.82+356) within PONAPI::Server::ConfigReader::BEGIN@4 which was called: # once (1.82ms+356ms) by PONAPI::Server::BEGIN@17 at line 4 use Moose; # spent 358ms making 1 call to PONAPI::Server::ConfigReader::BEGIN@4 # spent 3.69ms making 1 call to Moose::import
5 |  |  |  |  |
6 | 2 | 28µs | 2 | 2.28ms | # spent 1.15ms (9µs+1.14) within PONAPI::Server::ConfigReader::BEGIN@6 which was called: # once (9µs+1.14ms) by PONAPI::Server::BEGIN@17 at line 6 use Moose::Util::TypeConstraints; # spent 1.15ms making 1 call to PONAPI::Server::ConfigReader::BEGIN@6 # spent 1.14ms making 1 call to Moose::Util::TypeConstraints::import
7 | 2 | 21µs | 1 | 7µs | # spent 7µs within PONAPI::Server::ConfigReader::BEGIN@7 which was called: # once (7µs+0s) by PONAPI::Server::BEGIN@17 at line 7 use Path::Class::Dir; # spent 7µs making 1 call to PONAPI::Server::ConfigReader::BEGIN@7
8 | 2 | 115µs | 1 | 33.4ms | # spent 33.4ms (972µs+32.4) within PONAPI::Server::ConfigReader::BEGIN@8 which was called: # once (972µs+32.4ms) by PONAPI::Server::BEGIN@17 at line 8 use YAML::XS (); # spent 33.4ms making 1 call to PONAPI::Server::ConfigReader::BEGIN@8
9 |  |  |  |  |
10 | 2 | 526µs | 1 | 1.00s | # spent 1.00s (830µs+1000ms) within PONAPI::Server::ConfigReader::BEGIN@10 which was called: # once (830µs+1000ms) by PONAPI::Server::BEGIN@17 at line 10 use PONAPI::DAO; # spent 1.00s making 1 call to PONAPI::Server::ConfigReader::BEGIN@10
11 |  |  |  |  |
12 | 1 | 2µs | 1 | 557µs | class_type 'Path::Class::Dir'; # spent 557µs making 1 call to Moose::Util::TypeConstraints::class_type
13 |  |  |  |  | coerce 'Path::Class::Dir',
14 |  |  |  |  | from 'Str',
15 | 2 | 11µs | 4 | 415µs | # spent 41µs (7+34) within PONAPI::Server::ConfigReader::__ANON__[lib/PONAPI/Server/ConfigReader.pm:15] which was called: # once (7µs+34µs) by Moose::Meta::TypeCoercion::__ANON__[/usr/local/lib/perl/5.18.2/Moose/Meta/TypeCoercion.pm:69] at line 65 of Moose/Meta/TypeCoercion.pm via { Path::Class::Dir->new($_) }; # spent 378µs making 1 call to Moose::Util::TypeConstraints::coerce # spent 34µs making 1 call to Path::Class::Dir::new # spent 1µs making 1 call to Moose::Util::TypeConstraints::from # spent 1µs making 1 call to Moose::Util::TypeConstraints::via
16 |  |  |  |  |
17 | 1 | 2µs | 1 | 1.55ms | has dir => ( # spent 1.55ms making 1 call to Moose::has
18 |  |  |  |  | is => 'ro',
19 |  |  |  |  | isa => 'Path::Class::Dir',
20 |  |  |  |  | coerce => 1,
21 |  |  |  |  | required => 1,
22 |  |  |  |  | );
23 |  |  |  |  |
24 | 1 | 1µs | 1 | 1.65ms | has config => ( # spent 1.65ms making 1 call to Moose::has
25 |  |  |  |  | is => 'ro',
26 |  |  |  |  | isa => 'HashRef',
27 |  |  |  |  | lazy => 1,
28 |  |  |  |  | builder => '_build_conf',
29 |  |  |  |  | );
30 |  |  |  |  |
31 |  |  |  |  | # spent 356µs (17+340) within PONAPI::Server::ConfigReader::_build_conf which was called: # once (17µs+340µs) by PONAPI::Server::ConfigReader::config at line 12 of (eval 45)[Eval/Closure.pm:144] sub _build_conf {
32 | 1 | 300ns |  |  | my $self = shift;
33 | 1 | 109µs | 4 | 340µs | return YAML::XS::Load( scalar $self->dir->file('server.yml')->slurp ); # spent 169µs making 1 call to Path::Class::File::slurp # spent 95µs making 1 call to YAML::XS::LibYAML::Load # spent 73µs making 1 call to Path::Class::Dir::file # spent 2µs making 1 call to PONAPI::Server::ConfigReader::dir
34 |  |  |  |  | }
35 |  |  |  |  |
36 |  |  |  |  | # spent 467µs (26+441) within PONAPI::Server::ConfigReader::read_config which was called: # once (26µs+441µs) by PONAPI::Server::prepare_app at line 48 of lib/PONAPI/Server.pm sub read_config {
37 | 1 | 400ns |  |  | my $self = shift;
38 |  |  |  |  |
39 | 1 | 2µs | 1 | 382µs | $self->_set_server_json_api_version; # spent 382µs making 1 call to PONAPI::Server::ConfigReader::_set_server_json_api_version
40 |  |  |  |  |
41 | 1 | 2µs | 1 | 9µs | $self->_set_server_sorting; # spent 9µs making 1 call to PONAPI::Server::ConfigReader::_set_server_sorting
42 | 1 | 2µs | 1 | 16µs | $self->_set_server_send_header; # spent 16µs making 1 call to PONAPI::Server::ConfigReader::_set_server_send_header
43 | 1 | 2µs | 1 | 11µs | $self->_set_server_self_link; # spent 11µs making 1 call to PONAPI::Server::ConfigReader::_set_server_self_link
44 | 1 | 1µs | 1 | 12µs | $self->_set_server_relative_links; # spent 12µs making 1 call to PONAPI::Server::ConfigReader::_set_server_relative_links
45 | 1 | 2µs | 1 | 11µs | $self->_set_repository; # spent 11µs making 1 call to PONAPI::Server::ConfigReader::_set_repository
46 |  |  |  |  |
47 | 1 | 800ns |  |  | $self->{'ponapi.mediatype'} = 'application/vnd.api+json';
48 |  |  |  |  |
49 | 1 | 6µs |  |  | return %{$self};
50 |  |  |  |  | }
51 |  |  |  |  |
52 |  |  |  |  | sub _set_server_respond_to_updates_status {
53 |  |  |  |  | my $self = shift;
54 |  |  |  |  |
55 |  |  |  |  | $self->{'ponapi.respond_to_updates_with_200'} =
56 |  |  |  |  | $self->config->{server}{respond_to_updates_with_200};
57 |  |  |  |  | }
58 |  |  |  |  |
59 |  |  |  |  | # spent 9µs (8+1) within PONAPI::Server::ConfigReader::_set_server_sorting which was called: # once (8µs+1µs) by PONAPI::Server::ConfigReader::read_config at line 41 sub _set_server_sorting {
60 | 1 | 300ns |  |  | my $self = shift;
61 |  |  |  |  |
62 | 1 | 1µs | 1 | 1µs | my $sort_allowed = $self->config->{server}{sort_allowed} # spent 1µs making 1 call to PONAPI::Server::ConfigReader::config
63 |  |  |  |  | // die "[PONAPI Server] server sorting configuration is missing";
64 |  |  |  |  |
65 |  |  |  |  | $self->{'ponapi.sort_allowed'} =
66 |  |  |  |  | ( grep { $sort_allowed eq $_ } qw< yes true 1 > ) ? 1 :
67 | 1 | 5µs |  |  | ( grep { $sort_allowed eq $_ } qw< no false 0 > ) ? 0 :
68 |  |  |  |  | die "[PONAPI Server] server sorting is misconfigured";
69 |  |  |  |  | }
70 |  |  |  |  |
71 |  |  |  |  | # spent 382µs (8+374) within PONAPI::Server::ConfigReader::_set_server_json_api_version which was called: # once (8µs+374µs) by PONAPI::Server::ConfigReader::read_config at line 39 sub _set_server_json_api_version {
72 | 1 | 800ns |  |  | my $self = shift;
73 |  |  |  |  |
74 | 1 | 4µs | 1 | 374µs | my $spec_version = $self->config->{server}{spec_version} # spent 374µs making 1 call to PONAPI::Server::ConfigReader::config
75 |  |  |  |  | // die "[PONAPI Server] server JSON API version configuration is missing";
76 |  |  |  |  |
77 | 1 | 3µs |  |  | $self->{'ponapi.spec_version'} = $spec_version;
78 |  |  |  |  | }
79 |  |  |  |  |
80 |  |  |  |  | # spent 16µs (13+3) within PONAPI::Server::ConfigReader::_set_server_send_header which was called: # once (13µs+3µs) by PONAPI::Server::ConfigReader::read_config at line 42 sub _set_server_send_header {
81 | 1 | 400ns |  |  | my $self = shift;
82 |  |  |  |  |
83 | 1 | 2µs | 1 | 900ns | $self->{'ponapi.spec_version'} = $self->config->{server}{spec_version} # spent 900ns making 1 call to PONAPI::Server::ConfigReader::config
84 |  |  |  |  | // die "[PONAPI Server] server spec version is not configured";
85 |  |  |  |  |
86 |  |  |  |  | $self->{'ponapi.send_version_header'} =
87 | 1 | 7µs | 3 | 2µs | ( grep { $self->config->{server}{send_version_header} eq $_ } qw< yes true 1 > ) ? 1 : 0; # spent 2µs making 3 calls to PONAPI::Server::ConfigReader::config, avg 800ns/call
88 |  |  |  |  | }
89 |  |  |  |  |
90 |  |  |  |  | # spent 11µs (8+3) within PONAPI::Server::ConfigReader::_set_server_self_link which was called: # once (8µs+3µs) by PONAPI::Server::ConfigReader::read_config at line 43 sub _set_server_self_link {
91 | 1 | 400ns |  |  | my $self = shift;
92 |  |  |  |  |
93 |  |  |  |  | $self->{'ponapi.doc_auto_self_link'} =
94 | 1 | 6µs | 3 | 2µs | ( grep { $self->config->{server}{send_document_self_link} eq $_ } qw< yes true 1 > ) ? 1 : 0; # spent 2µs making 3 calls to PONAPI::Server::ConfigReader::config, avg 833ns/call
95 |  |  |  |  | }
96 |  |  |  |  |
97 |  |  |  |  | # spent 12µs (10+2) within PONAPI::Server::ConfigReader::_set_server_relative_links which was called: # once (10µs+2µs) by PONAPI::Server::ConfigReader::read_config at line 44 sub _set_server_relative_links {
98 | 1 | 200ns |  |  | my $self = shift;
99 |  |  |  |  |
100 | 1 | 3µs | 2 | 2µs | grep { $self->config->{server}{links_type} eq $_ } qw< relative full > # spent 2µs making 2 calls to PONAPI::Server::ConfigReader::config, avg 800ns/call
101 |  |  |  |  | or die "[PONAPI Server] server links_type is misconfigured";
102 |  |  |  |  |
103 | 1 | 4µs | 1 | 800ns | $self->{'ponapi.relative_links'} = $self->config->{server}{links_type}; # spent 800ns making 1 call to PONAPI::Server::ConfigReader::config
104 |  |  |  |  | }
105 |  |  |  |  |
106 |  |  |  |  | # spent 11µs (9+2) within PONAPI::Server::ConfigReader::_set_repository which was called: # once (9µs+2µs) by PONAPI::Server::ConfigReader::read_config at line 45 sub _set_repository {
107 | 1 | 300ns |  |  | my $self = shift;
108 | 1 | 2µs | 1 | 900ns | $self->{'repository.class'} = $self->config->{repository}{class}; # spent 900ns making 1 call to PONAPI::Server::ConfigReader::config
109 | 1 | 4µs | 1 | 800ns | $self->{'repository.args'} = $self->config->{repository}{args}; # spent 800ns making 1 call to PONAPI::Server::ConfigReader::config
110 |  |  |  |  | }
111 |  |  |  |  |
112 | 1 | 4µs | 2 | 2.39ms | __PACKAGE__->meta->make_immutable; # spent 2.37ms making 1 call to Class::MOP::Class::make_immutable # spent 12µs making 1 call to PONAPI::Server::ConfigReader::meta
113 | 3 | 66µs | 2 | 173µs | # spent 91µs (9+82) within PONAPI::Server::ConfigReader::BEGIN@113 which was called: # once (9µs+82µs) by PONAPI::Server::BEGIN@17 at line 113 no Moose; 1; # spent 91µs making 1 call to PONAPI::Server::ConfigReader::BEGIN@113 # spent 82µs making 1 call to Moose::unimport
114 |  |  |  |  |
115 |  |  |  |  | __END__