← 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
StatementsExecuted 47 statements in 1.06ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1111.82ms358msPONAPI::Server::ConfigReader::::BEGIN@4PONAPI::Server::ConfigReader::BEGIN@4
111972µs33.4msPONAPI::Server::ConfigReader::::BEGIN@8PONAPI::Server::ConfigReader::BEGIN@8
111830µs1.00sPONAPI::Server::ConfigReader::::BEGIN@10PONAPI::Server::ConfigReader::BEGIN@10
11126µs467µsPONAPI::Server::ConfigReader::::read_configPONAPI::Server::ConfigReader::read_config
11117µs356µsPONAPI::Server::ConfigReader::::_build_confPONAPI::Server::ConfigReader::_build_conf
11113µs16µsPONAPI::Server::ConfigReader::::_set_server_send_headerPONAPI::Server::ConfigReader::_set_server_send_header
11110µs12µsPONAPI::Server::ConfigReader::::_set_server_relative_linksPONAPI::Server::ConfigReader::_set_server_relative_links
1119µs11µsPONAPI::Server::ConfigReader::::_set_repositoryPONAPI::Server::ConfigReader::_set_repository
1119µs1.15msPONAPI::Server::ConfigReader::::BEGIN@6PONAPI::Server::ConfigReader::BEGIN@6
1119µs91µsPONAPI::Server::ConfigReader::::BEGIN@113PONAPI::Server::ConfigReader::BEGIN@113
1118µs11µsPONAPI::Server::ConfigReader::::_set_server_self_linkPONAPI::Server::ConfigReader::_set_server_self_link
1118µs382µsPONAPI::Server::ConfigReader::::_set_server_json_api_versionPONAPI::Server::ConfigReader::_set_server_json_api_version
1118µs9µsPONAPI::Server::ConfigReader::::_set_server_sortingPONAPI::Server::ConfigReader::_set_server_sorting
1117µs7µsPONAPI::Server::ConfigReader::::BEGIN@7PONAPI::Server::ConfigReader::BEGIN@7
1117µs41µsPONAPI::Server::ConfigReader::::__ANON__[lib/PONAPI/Server/ConfigReader.pm:15]PONAPI::Server::ConfigReader::__ANON__[lib/PONAPI/Server/ConfigReader.pm:15]
0000s0sPONAPI::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
2package PONAPI::Server::ConfigReader;
3
42108µs2361ms
# 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
6228µs22.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
7221µs17µ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
82115µs133.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
102526µs11.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
1212µs1557µsclass_type 'Path::Class::Dir';
# spent 557µs making 1 call to Moose::Util::TypeConstraints::class_type
13coerce 'Path::Class::Dir',
14 from 'Str',
15211µs4415µ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
1712µs11.55mshas 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
2411µs11.65mshas 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 {
321300ns my $self = shift;
331109µs4340µ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 {
371400ns my $self = shift;
38
3912µs1382µs $self->_set_server_json_api_version;
40
4112µs19µs $self->_set_server_sorting;
# spent 9µs making 1 call to PONAPI::Server::ConfigReader::_set_server_sorting
4212µs116µs $self->_set_server_send_header;
4312µs111µs $self->_set_server_self_link;
# spent 11µs making 1 call to PONAPI::Server::ConfigReader::_set_server_self_link
4411µs112µs $self->_set_server_relative_links;
4512µs111µs $self->_set_repository;
# spent 11µs making 1 call to PONAPI::Server::ConfigReader::_set_repository
46
471800ns $self->{'ponapi.mediatype'} = 'application/vnd.api+json';
48
4916µs return %{$self};
50}
51
52sub _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 {
601300ns my $self = shift;
61
6211µs11µ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 :
6715µ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 {
721800ns my $self = shift;
73
7414µs1374µ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
7713µ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 {
811400ns my $self = shift;
82
8312µs1900ns $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'} =
8717µs32µ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 {
911400ns my $self = shift;
92
93 $self->{'ponapi.doc_auto_self_link'} =
9416µs32µ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 {
981200ns my $self = shift;
99
10013µs22µ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
10314µs1800ns $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 {
1071300ns my $self = shift;
10812µs1900ns $self->{'repository.class'} = $self->config->{repository}{class};
# spent 900ns making 1 call to PONAPI::Server::ConfigReader::config
10914µs1800ns $self->{'repository.args'} = $self->config->{repository}{args};
# spent 800ns making 1 call to PONAPI::Server::ConfigReader::config
110}
111
11214µs22.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
113366µs2173µ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__