← Index
NYTProf Performance Profile   « block view • line view • sub view »
For mentat.storage.mongo.pl
  Run on Tue Jun 24 10:04:38 2014
Reported on Tue Jun 24 10:05:06 2014

Filename/usr/local/share/perl/5.14.2/DateTime/TimeZone/OffsetOnly.pm
StatementsExecuted 22 statements in 520µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
111258µs318µsDateTime::TimeZone::OffsetOnly::::BEGIN@14DateTime::TimeZone::OffsetOnly::BEGIN@14
11117µs45µsDateTime::TimeZone::OffsetOnly::::newDateTime::TimeZone::OffsetOnly::new
11110µs10µsDateTime::TimeZone::OffsetOnly::::BEGIN@5DateTime::TimeZone::OffsetOnly::BEGIN@5
1117µs38µsDateTime::TimeZone::OffsetOnly::::BEGIN@15DateTime::TimeZone::OffsetOnly::BEGIN@15
1117µs24µsDateTime::TimeZone::OffsetOnly::::BEGIN@10DateTime::TimeZone::OffsetOnly::BEGIN@10
1117µs35µsDateTime::TimeZone::OffsetOnly::::BEGIN@12DateTime::TimeZone::OffsetOnly::BEGIN@12
1117µs9µsDateTime::TimeZone::OffsetOnly::::BEGIN@9DateTime::TimeZone::OffsetOnly::BEGIN@9
4213µs3µsDateTime::TimeZone::OffsetOnly::::is_utcDateTime::TimeZone::OffsetOnly::is_utc
0000s0sDateTime::TimeZone::OffsetOnly::::STORABLE_freezeDateTime::TimeZone::OffsetOnly::STORABLE_freeze
0000s0sDateTime::TimeZone::OffsetOnly::::STORABLE_thawDateTime::TimeZone::OffsetOnly::STORABLE_thaw
0000s0sDateTime::TimeZone::OffsetOnly::::categoryDateTime::TimeZone::OffsetOnly::category
0000s0sDateTime::TimeZone::OffsetOnly::::is_dst_for_datetimeDateTime::TimeZone::OffsetOnly::is_dst_for_datetime
0000s0sDateTime::TimeZone::OffsetOnly::::offset_for_datetimeDateTime::TimeZone::OffsetOnly::offset_for_datetime
0000s0sDateTime::TimeZone::OffsetOnly::::offset_for_local_datetimeDateTime::TimeZone::OffsetOnly::offset_for_local_datetime
0000s0sDateTime::TimeZone::OffsetOnly::::short_name_for_datetimeDateTime::TimeZone::OffsetOnly::short_name_for_datetime
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package DateTime::TimeZone::OffsetOnly;
2{
321µs $DateTime::TimeZone::OffsetOnly::VERSION = '1.63';
4}
5
# spent 10µs within DateTime::TimeZone::OffsetOnly::BEGIN@5 which was called: # once (10µs+0s) by parent::import at line 7
BEGIN {
615µs $DateTime::TimeZone::OffsetOnly::AUTHORITY = 'cpan:DROLSKY';
7120µs110µs}
# spent 10µs making 1 call to DateTime::TimeZone::OffsetOnly::BEGIN@5
8
9221µs212µs
# spent 9µs (7+3) within DateTime::TimeZone::OffsetOnly::BEGIN@9 which was called: # once (7µs+3µs) by parent::import at line 9
use strict;
# spent 9µs making 1 call to DateTime::TimeZone::OffsetOnly::BEGIN@9 # spent 3µs making 1 call to strict::import
10223µs241µs
# spent 24µs (7+17) within DateTime::TimeZone::OffsetOnly::BEGIN@10 which was called: # once (7µs+17µs) by parent::import at line 10
use warnings;
# spent 24µs making 1 call to DateTime::TimeZone::OffsetOnly::BEGIN@10 # spent 17µs making 1 call to warnings::import
11
12230µs235µs
# spent 35µs (7+28) within DateTime::TimeZone::OffsetOnly::BEGIN@12 which was called: # once (7µs+28µs) by parent::import at line 12
use parent 'DateTime::TimeZone';
# spent 35µs making 1 call to DateTime::TimeZone::OffsetOnly::BEGIN@12 # spent 28µs making 1 call to parent::import, recursion: max depth 1, sum of overlapping time 28µs
13
142110µs1318µs
# spent 318µs (258+60) within DateTime::TimeZone::OffsetOnly::BEGIN@14 which was called: # once (258µs+60µs) by parent::import at line 14
use DateTime::TimeZone::UTC;
# spent 318µs making 1 call to DateTime::TimeZone::OffsetOnly::BEGIN@14
152271µs270µs
# spent 38µs (7+31) within DateTime::TimeZone::OffsetOnly::BEGIN@15 which was called: # once (7µs+31µs) by parent::import at line 15
use Params::Validate qw( validate SCALAR );
# spent 38µs making 1 call to DateTime::TimeZone::OffsetOnly::BEGIN@15 # spent 31µs making 1 call to Exporter::import
16
17
# spent 45µs (17+28) within DateTime::TimeZone::OffsetOnly::new which was called: # once (17µs+28µs) by DateTime::TimeZone::new at line 64 of DateTime/TimeZone.pm
sub new {
18428µs my $class = shift;
1916µs my %p = validate(
# spent 6µs making 1 call to Params::Validate::XS::validate
20 @_, {
21 offset => { type => SCALAR },
22 }
23 );
24
25122µs my $offset = DateTime::TimeZone::offset_as_seconds( $p{offset} );
# spent 22µs making 1 call to DateTime::TimeZone::offset_as_seconds
26
27 die "Invalid offset: $p{offset}\n" unless defined $offset;
28
29 return DateTime::TimeZone::UTC->new unless $offset;
30
31 my $self = {
32 name => DateTime::TimeZone::offset_as_string($offset),
33 offset => $offset,
34 };
35
36 return bless $self, $class;
37}
38
39sub is_dst_for_datetime {0}
40
41sub offset_for_datetime { $_[0]->{offset} }
42sub offset_for_local_datetime { $_[0]->{offset} }
43
4449µs
# spent 3µs within DateTime::TimeZone::OffsetOnly::is_utc which was called 4 times, avg 850ns/call: # 2 times (2µs+0s) by DateTime::_calc_utc_rd at line 386 of DateTime.pm, avg 1µs/call # 2 times (1µs+0s) by DateTime::_calc_local_rd at line 427 of DateTime.pm, avg 650ns/call
sub is_utc {0}
45
46sub short_name_for_datetime { $_[0]->name }
47
48sub category {undef}
49
50sub STORABLE_freeze {
51 my $self = shift;
52
53 return $self->name;
54}
55
56sub STORABLE_thaw {
57 my $self = shift;
58 my $cloning = shift;
59 my $serialized = shift;
60
61 my $class = ref $self || $self;
62
63 my $obj;
64 if ( $class->isa(__PACKAGE__) ) {
65 $obj = __PACKAGE__->new( offset => $serialized );
66 }
67 else {
68 $obj = $class->new( offset => $serialized );
69 }
70
71 %$self = %$obj;
72
73 return $self;
74}
75
7613µs1;
77
78# ABSTRACT: A DateTime::TimeZone object that just contains an offset
79
80__END__