← Index
NYTProf Performance Profile   « line view »
For examples/Atom-timer.pl
  Run on Mon Aug 12 14:45:28 2013
Reported on Mon Aug 12 14:46:15 2013

Filename/Users/dde/perl5/perlbrew/perls/5.18.0t/lib/site_perl/5.18.0/MooseX/Storage/Basic.pm
StatementsExecuted 12 statements in 406µs
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1111.63ms20.3msMooseX::Storage::Basic::::BEGIN@10MooseX::Storage::Basic::BEGIN@10
1118µs8µsMooseX::Storage::Basic::::BEGIN@5MooseX::Storage::Basic::BEGIN@5
1117µs79µsMooseX::Storage::Basic::::BEGIN@61MooseX::Storage::Basic::BEGIN@61
1117µs97µsMooseX::Storage::Basic::::BEGIN@11MooseX::Storage::Basic::BEGIN@11
1117µs1.80msMooseX::Storage::Basic::::BEGIN@8MooseX::Storage::Basic::BEGIN@8
0000s0sMooseX::Storage::Basic::::_storage_construct_instanceMooseX::Storage::Basic::_storage_construct_instance
0000s0sMooseX::Storage::Basic::::_storage_get_engine_classMooseX::Storage::Basic::_storage_get_engine_class
0000s0sMooseX::Storage::Basic::::packMooseX::Storage::Basic::pack
0000s0sMooseX::Storage::Basic::::unpackMooseX::Storage::Basic::unpack
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package MooseX::Storage::Basic;
2{
32700ns $MooseX::Storage::Basic::VERSION = '0.39';
4}
5
# spent 8µs within MooseX::Storage::Basic::BEGIN@5 which was called: # once (8µs+0s) by Module::Runtime::require_module at line 7
BEGIN {
614µs $MooseX::Storage::Basic::AUTHORITY = 'cpan:STEVAN';
7118µs18µs}
# spent 8µs making 1 call to MooseX::Storage::Basic::BEGIN@5
8231µs23.59ms
# spent 1.80ms (7µs+1.79) within MooseX::Storage::Basic::BEGIN@8 which was called: # once (7µs+1.79ms) by Module::Runtime::require_module at line 8
use Moose::Role;
# spent 1.80ms making 1 call to MooseX::Storage::Basic::BEGIN@8 # spent 1.79ms making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:519]
9
102110µs120.3ms
# spent 20.3ms (1.63+18.7) within MooseX::Storage::Basic::BEGIN@10 which was called: # once (1.63ms+18.7ms) by Module::Runtime::require_module at line 10
use MooseX::Storage::Engine;
# spent 20.3ms making 1 call to MooseX::Storage::Basic::BEGIN@10
112212µs2186µs
# spent 97µs (7+90) within MooseX::Storage::Basic::BEGIN@11 which was called: # once (7µs+90µs) by Module::Runtime::require_module at line 11
use String::RewritePrefix;
# spent 97µs making 1 call to MooseX::Storage::Basic::BEGIN@11 # spent 90µs making 1 call to Sub::Exporter::__ANON__[Sub/Exporter.pm:337]
12
13sub pack {
14 my ( $self, %args ) = @_;
15 my $e = $self->_storage_get_engine_class(%args)->new( object => $self );
16 $e->collapse_object(%args);
17}
18
19sub unpack {
20 my ($class, $data, %args) = @_;
21 my $e = $class->_storage_get_engine_class(%args)->new(class => $class);
22
23 $class->_storage_construct_instance(
24 $e->expand_object($data, %args),
25 \%args
26 );
27}
28
29sub _storage_get_engine_class {
30 my ($self, %args) = @_;
31
32 return 'MooseX::Storage::Engine'
33 unless (
34 exists $args{engine_traits}
35 && ref($args{engine_traits}) eq 'ARRAY'
36 && scalar(@{$args{engine_traits}})
37 );
38
39 my @roles = String::RewritePrefix->rewrite(
40 {
41 '' => 'MooseX::Storage::Engine::Trait::',
42 '+' => '',
43 },
44 @{$args{engine_traits}}
45 );
46
47 Moose::Meta::Class->create_anon_class(
48 superclasses => ['MooseX::Storage::Engine'],
49 roles => [ @roles ],
50 cache => 1,
51 )->name;
52}
53
54sub _storage_construct_instance {
55 my ($class, $args, $opts) = @_;
56 my %i = defined $opts->{'inject'} ? %{ $opts->{'inject'} } : ();
57
58 $class->new( %$args, %i );
59}
60
61228µs2151µs
# spent 79µs (7+72) within MooseX::Storage::Basic::BEGIN@61 which was called: # once (7µs+72µs) by Module::Runtime::require_module at line 61
no Moose::Role;
# spent 79µs making 1 call to MooseX::Storage::Basic::BEGIN@61 # spent 72µs making 1 call to Moose::Exporter::__ANON__[Moose/Exporter.pm:706]
62
6313µs1;
64
65__END__