← Index
NYTProf Performance Profile   « line view »
For -e
  Run on Thu Jun 30 16:16:00 2016
Reported on Thu Jun 30 16:16:08 2016

Filename/home/s1/perl5/perlbrew/perls/perl-5.22.1/lib/site_perl/5.22.1/x86_64-linux/DateTime/Infinite.pm
StatementsExecuted 66 statements in 1.77ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1111.82ms2.04msDateTime::Infinite::::BEGIN@11 DateTime::Infinite::BEGIN@11
11120µs24µsDateTime::Infinite::::BEGIN@3 DateTime::Infinite::BEGIN@3
22113µs118µsFakeLocale::::instance FakeLocale::instance
11111µs13µsDateTime::Infinite::Future::::BEGIN@72DateTime::Infinite::Future::BEGIN@72
11110µs12µsDateTime::Infinite::Past::::BEGIN@97 DateTime::Infinite::Past::BEGIN@97
11110µs18µsDateTime::Infinite::::BEGIN@4 DateTime::Infinite::BEGIN@4
1119µs12µsFakeLocale::::BEGIN@123 FakeLocale::BEGIN@123
1119µs21µsDateTime::Infinite::::BEGIN@14 DateTime::Infinite::BEGIN@14
1119µs18µsDateTime::Infinite::Future::::BEGIN@73DateTime::Infinite::Future::BEGIN@73
1118µs15µsDateTime::Infinite::Past::::BEGIN@98 DateTime::Infinite::Past::BEGIN@98
2118µs8µsDateTime::Infinite::::_rd2ymd DateTime::Infinite::_rd2ymd
1118µs64µsDateTime::Infinite::Past::::BEGIN@100 DateTime::Infinite::Past::BEGIN@100
1118µs66µsDateTime::Infinite::Future::::BEGIN@75DateTime::Infinite::Future::BEGIN@75
1118µs19µsFakeLocale::::BEGIN@166 FakeLocale::BEGIN@166
1118µs14µsFakeLocale::::BEGIN@124 FakeLocale::BEGIN@124
1117µs7µsFakeLocale::::BEGIN@126 FakeLocale::BEGIN@126
1116µs6µsDateTime::Infinite::::BEGIN@8 DateTime::Infinite::BEGIN@8
1115µs5µsDateTime::Infinite::::BEGIN@9 DateTime::Infinite::BEGIN@9
2115µs5µsDateTime::Infinite::::_seconds_as_components DateTime::Infinite::_seconds_as_components
0000s0sDateTime::Infinite::Future::::newDateTime::Infinite::Future::new
0000s0sDateTime::Infinite::Past::::new DateTime::Infinite::Past::new
0000s0sDateTime::Infinite::::STORABLE_freeze DateTime::Infinite::STORABLE_freeze
0000s0sDateTime::Infinite::::STORABLE_thaw DateTime::Infinite::STORABLE_thaw
0000s0sDateTime::Infinite::::__ANON__[:15] DateTime::Infinite::__ANON__[:15]
0000s0sDateTime::Infinite::::_infinity_string DateTime::Infinite::_infinity_string
0000s0sDateTime::Infinite::::_stringify DateTime::Infinite::_stringify
0000s0sDateTime::Infinite::::dmy DateTime::Infinite::dmy
0000s0sDateTime::Infinite::::hms DateTime::Infinite::hms
0000s0sDateTime::Infinite::::hour_12 DateTime::Infinite::hour_12
0000s0sDateTime::Infinite::::hour_12_0 DateTime::Infinite::hour_12_0
0000s0sDateTime::Infinite::::is_finite DateTime::Infinite::is_finite
0000s0sDateTime::Infinite::::is_infinite DateTime::Infinite::is_infinite
0000s0sDateTime::Infinite::::iso8601 DateTime::Infinite::iso8601
0000s0sDateTime::Infinite::::mdy DateTime::Infinite::mdy
0000s0sDateTime::Infinite::::ymd DateTime::Infinite::ymd
0000s0sFakeLocale::::AUTOLOAD FakeLocale::AUTOLOAD
0000s0sFakeLocale::::__ANON__[:167] FakeLocale::__ANON__[:167]
0000s0sFakeLocale::::first_day_of_week FakeLocale::first_day_of_week
0000s0sFakeLocale::::id FakeLocale::id
0000s0sFakeLocale::::language FakeLocale::language
0000s0sFakeLocale::::language_id FakeLocale::language_id
0000s0sFakeLocale::::name FakeLocale::name
0000s0sFakeLocale::::prefers_24_hour_time FakeLocale::prefers_24_hour_time
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package DateTime::Infinite;
2
3233µs228µs
# spent 24µs (20+4) within DateTime::Infinite::BEGIN@3 which was called: # once (20µs+4µs) by DateTime::Format::Alami::parse_datetime at line 3
use strict;
# spent 24µs making 1 call to DateTime::Infinite::BEGIN@3 # spent 4µs making 1 call to strict::import
4245µs227µs
# spent 18µs (10+9) within DateTime::Infinite::BEGIN@4 which was called: # once (10µs+9µs) by DateTime::Format::Alami::parse_datetime at line 4
use warnings;
# spent 18µs making 1 call to DateTime::Infinite::BEGIN@4 # spent 9µs making 1 call to warnings::import
5
61700nsour $VERSION = '1.27';
7
8226µs16µs
# spent 6µs within DateTime::Infinite::BEGIN@8 which was called: # once (6µs+0s) by DateTime::Format::Alami::parse_datetime at line 8
use DateTime;
# spent 6µs making 1 call to DateTime::Infinite::BEGIN@8
9229µs15µs
# spent 5µs within DateTime::Infinite::BEGIN@9 which was called: # once (5µs+0s) by DateTime::Format::Alami::parse_datetime at line 9
use DateTime::TimeZone;
# spent 5µs making 1 call to DateTime::Infinite::BEGIN@9
10
112343µs22.18ms
# spent 2.04ms (1.82+223µs) within DateTime::Infinite::BEGIN@11 which was called: # once (1.82ms+223µs) by DateTime::Format::Alami::parse_datetime at line 11
use base qw(DateTime);
# spent 2.04ms making 1 call to DateTime::Infinite::BEGIN@11 # spent 131µs making 1 call to base::import
12
1311µsforeach my $m (qw( set set_time_zone truncate )) {
142357µs234µs
# spent 21µs (9+12) within DateTime::Infinite::BEGIN@14 which was called: # once (9µs+12µs) by DateTime::Format::Alami::parse_datetime at line 14
no strict 'refs';
# spent 21µs making 1 call to DateTime::Infinite::BEGIN@14 # spent 12µs making 1 call to strict::unimport
15335µs *{"DateTime::Infinite::$m"} = sub { return $_[0] };
16}
17
18sub is_finite {0}
19sub is_infinite {1}
20
21
# spent 8µs within DateTime::Infinite::_rd2ymd which was called 2 times, avg 4µs/call: # 2 times (8µs+0s) by DateTime::_calc_local_components at line 471 of DateTime.pm, avg 4µs/call
sub _rd2ymd {
22217µs return $_[2] ? ( $_[1] ) x 7 : ( $_[1] ) x 3;
23}
24
25
# spent 5µs within DateTime::Infinite::_seconds_as_components which was called 2 times, avg 3µs/call: # 2 times (5µs+0s) by DateTime::_calc_local_components at line 477 of DateTime.pm, avg 3µs/call
sub _seconds_as_components {
26211µs return ( $_[1] ) x 3;
27}
28
29sub ymd {
30 return $_[0]->iso8601;
31}
32
33sub mdy {
34 return $_[0]->iso8601;
35}
36
37sub dmy {
38 return $_[0]->iso8601;
39}
40
41sub hms {
42 return $_[0]->iso8601;
43}
44
45sub hour_12 {
46 return $_[0]->_infinity_string;
47}
48
49sub hour_12_0 {
50 return $_[0]->_infinity_string;
51}
52
53sub iso8601 {
54 return $_[0]->_infinity_string;
55}
56
57sub _stringify {
58 return $_[0]->_infinity_string;
59}
60
61sub _infinity_string {
62 return $_[0]->{utc_rd_days} == DateTime::INFINITY
63 ? DateTime::INFINITY . ''
64 : DateTime::NEG_INFINITY . '';
65}
66
67sub STORABLE_freeze {return}
68sub STORABLE_thaw {return}
69
70package DateTime::Infinite::Future;
71
72230µs216µs
# spent 13µs (11+2) within DateTime::Infinite::Future::BEGIN@72 which was called: # once (11µs+2µs) by DateTime::Format::Alami::parse_datetime at line 72
use strict;
# spent 13µs making 1 call to DateTime::Infinite::Future::BEGIN@72 # spent 2µs making 1 call to strict::import
73232µs227µs
# spent 18µs (9+9) within DateTime::Infinite::Future::BEGIN@73 which was called: # once (9µs+9µs) by DateTime::Format::Alami::parse_datetime at line 73
use warnings;
# spent 18µs making 1 call to DateTime::Infinite::Future::BEGIN@73 # spent 9µs making 1 call to warnings::import
74
752104µs2124µs
# spent 66µs (8+58) within DateTime::Infinite::Future::BEGIN@75 which was called: # once (8µs+58µs) by DateTime::Format::Alami::parse_datetime at line 75
use base qw(DateTime::Infinite);
# spent 66µs making 1 call to DateTime::Infinite::Future::BEGIN@75 # spent 58µs making 1 call to base::import
76
77{
78113µs2211µs my $Pos = bless {
# spent 113µs making 1 call to FakeLocale::instance # spent 98µs making 1 call to DateTime::TimeZone::new
79 utc_rd_days => DateTime::INFINITY,
80 utc_rd_secs => DateTime::INFINITY,
81 local_rd_days => DateTime::INFINITY,
82 local_rd_secs => DateTime::INFINITY,
83 rd_nanosecs => DateTime::INFINITY,
84 tz => DateTime::TimeZone->new( name => 'floating' ),
85 locale => FakeLocale->instance(),
86 },
87 __PACKAGE__;
88
8916µs1107µs $Pos->_calc_utc_rd;
# spent 107µs making 1 call to DateTime::_calc_utc_rd
9015µs170µs $Pos->_calc_local_rd;
# spent 70µs making 1 call to DateTime::_calc_local_rd
91
92 sub new {$Pos}
93}
94
9512µspackage DateTime::Infinite::Past;
96
97232µs214µs
# spent 12µs (10+2) within DateTime::Infinite::Past::BEGIN@97 which was called: # once (10µs+2µs) by DateTime::Format::Alami::parse_datetime at line 97
use strict;
# spent 12µs making 1 call to DateTime::Infinite::Past::BEGIN@97 # spent 2µs making 1 call to strict::import
98234µs222µs
# spent 15µs (8+7) within DateTime::Infinite::Past::BEGIN@98 which was called: # once (8µs+7µs) by DateTime::Format::Alami::parse_datetime at line 98
use warnings;
# spent 15µs making 1 call to DateTime::Infinite::Past::BEGIN@98 # spent 7µs making 1 call to warnings::import
99
1002106µs2120µs
# spent 64µs (8+56) within DateTime::Infinite::Past::BEGIN@100 which was called: # once (8µs+56µs) by DateTime::Format::Alami::parse_datetime at line 100
use base qw(DateTime::Infinite);
# spent 64µs making 1 call to DateTime::Infinite::Past::BEGIN@100 # spent 56µs making 1 call to base::import
101
102{
10318µs247µs my $Neg = bless {
# spent 42µs making 1 call to DateTime::TimeZone::new # spent 5µs making 1 call to FakeLocale::instance
104 utc_rd_days => DateTime::NEG_INFINITY,
105 utc_rd_secs => DateTime::NEG_INFINITY,
106 local_rd_days => DateTime::NEG_INFINITY,
107 local_rd_secs => DateTime::NEG_INFINITY,
108 rd_nanosecs => DateTime::NEG_INFINITY,
109 tz => DateTime::TimeZone->new( name => 'floating' ),
110 locale => FakeLocale->instance(),
111 },
112 __PACKAGE__;
113
11414µs190µs $Neg->_calc_utc_rd;
# spent 90µs making 1 call to DateTime::_calc_utc_rd
11514µs177µs $Neg->_calc_local_rd;
# spent 77µs making 1 call to DateTime::_calc_local_rd
116
117 sub new {$Neg}
118}
119
120package # hide from PAUSE
12112µs FakeLocale;
122
123225µs214µs
# spent 12µs (9+2) within FakeLocale::BEGIN@123 which was called: # once (9µs+2µs) by DateTime::Format::Alami::parse_datetime at line 123
use strict;
# spent 12µs making 1 call to FakeLocale::BEGIN@123 # spent 2µs making 1 call to strict::import
124224µs220µs
# spent 14µs (8+6) within FakeLocale::BEGIN@124 which was called: # once (8µs+6µs) by DateTime::Format::Alami::parse_datetime at line 124
use warnings;
# spent 14µs making 1 call to FakeLocale::BEGIN@124 # spent 6µs making 1 call to warnings::import
125
1262142µs17µs
# spent 7µs within FakeLocale::BEGIN@126 which was called: # once (7µs+0s) by DateTime::Format::Alami::parse_datetime at line 126
use DateTime::Locale;
# spent 7µs making 1 call to FakeLocale::BEGIN@126
127
1281200nsmy $Instance;
129
130
# spent 118µs (13+105) within FakeLocale::instance which was called 2 times, avg 59µs/call: # once (8µs+105µs) by DateTime::Format::Alami::parse_datetime at line 78 # once (5µs+0s) by DateTime::Format::Alami::parse_datetime at line 103
sub instance {
131215µs1105µs return $Instance ||= bless { locale => DateTime::Locale->load('en_US') },
# spent 105µs making 1 call to DateTime::Locale::load
132 __PACKAGE__;
133}
134
135sub id {
136 return 'infinite';
137}
138
139sub language_id {
140 return 'infinite';
141}
142
143sub name {
144 'Fake locale for Infinite DateTime objects';
145}
146
147sub language {
148 'Fake locale for Infinite DateTime objects';
149}
150
15113µsmy @methods = qw(
152 script_id
153 territory_id
154 variant_id
155 script
156 territory
157 variant
158 native_name
159 native_language
160 native_script
161 native_territory
162 native_variant
163);
164
1651900nsfor my $meth (@methods) {
1662217µs230µs
# spent 19µs (8+11) within FakeLocale::BEGIN@166 which was called: # once (8µs+11µs) by DateTime::Format::Alami::parse_datetime at line 166
no strict 'refs';
# spent 19µs making 1 call to FakeLocale::BEGIN@166 # spent 11µs making 1 call to strict::unimport
1671142µs *{$meth} = sub {undef};
168}
169
170# Totally arbitrary
171sub first_day_of_week {
172 return 1;
173}
174
175sub prefers_24_hour_time {
176 return 0;
177}
178
179our $AUTOLOAD;
180
181sub AUTOLOAD {
182 my $self = shift;
183
184 my ($meth) = $AUTOLOAD =~ /::(\w+)$/;
185
186 if ( $meth =~ /format/ && $meth !~ /^(?:day|month|quarter)/ ) {
187 return $self->{locale}->$meth(@_);
188 }
189
190 return [];
191}
192
193120µs1;
194
195# ABSTRACT: Infinite past and future DateTime objects
196
197__END__