← Index
NYTProf Performance Profile   « block view • line view • sub view »
For -e
  Run on Wed Nov 17 21:42:38 2010
Reported on Wed Nov 17 22:07:39 2010

Filename/home/doy/coding/Package-Stash/Package-Stash-0.16/blib/lib/Package/Stash.pm
StatementsExecuted 37 statements in 5.59ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1112.77ms5.54msPackage::Stash::::BEGIN@11Package::Stash::BEGIN@11
11169µs1.24msPackage::Stash::::BEGIN@48Package::Stash::BEGIN@48
11142µs42µsPackage::Stash::::BEGIN@2Package::Stash::BEGIN@2
11138µs103µsPackage::Stash::::BEGIN@6Package::Stash::BEGIN@6
11137µs54µsPackage::Stash::::BEGIN@5Package::Stash::BEGIN@5
0000s0sPackage::Stash::::add_package_symbolPackage::Stash::add_package_symbol
0000s0sPackage::Stash::::add_symbolPackage::Stash::add_symbol
0000s0sPackage::Stash::::bootstrapPackage::Stash::bootstrap
0000s0sPackage::Stash::::get_all_symbolsPackage::Stash::get_all_symbols
0000s0sPackage::Stash::::get_or_add_package_symbolPackage::Stash::get_or_add_package_symbol
0000s0sPackage::Stash::::get_or_add_symbolPackage::Stash::get_or_add_symbol
0000s0sPackage::Stash::::get_package_symbolPackage::Stash::get_package_symbol
0000s0sPackage::Stash::::get_symbolPackage::Stash::get_symbol
0000s0sPackage::Stash::::has_package_symbolPackage::Stash::has_package_symbol
0000s0sPackage::Stash::::has_symbolPackage::Stash::has_symbol
0000s0sPackage::Stash::::list_all_package_symbolsPackage::Stash::list_all_package_symbols
0000s0sPackage::Stash::::list_all_symbolsPackage::Stash::list_all_symbols
0000s0sPackage::Stash::::namePackage::Stash::name
0000s0sPackage::Stash::::namespacePackage::Stash::namespace
0000s0sPackage::Stash::::newPackage::Stash::new
0000s0sPackage::Stash::::remove_globPackage::Stash::remove_glob
0000s0sPackage::Stash::::remove_package_globPackage::Stash::remove_package_glob
0000s0sPackage::Stash::::remove_package_symbolPackage::Stash::remove_package_symbol
0000s0sPackage::Stash::::remove_symbolPackage::Stash::remove_symbol
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Package::Stash;
2
# spent 42µs within Package::Stash::BEGIN@2 which was called: # once (42µs+0s) by Class::MOP::Package::BEGIN@9 at line 4
BEGIN {
3125µs $Package::Stash::VERSION = '0.16';
4165µs142µs}
# spent 42µs making 1 call to Package::Stash::BEGIN@2
5390µs271µs
# spent 54µs (37+17) within Package::Stash::BEGIN@5 which was called: # once (37µs+17µs) by Class::MOP::Package::BEGIN@9 at line 5
use strict;
# spent 54µs making 1 call to Package::Stash::BEGIN@5 # spent 17µs making 1 call to strict::import
63812µs2168µs
# spent 103µs (38+65) within Package::Stash::BEGIN@6 which was called: # once (38µs+65µs) by Class::MOP::Package::BEGIN@9 at line 6
use warnings;
# spent 103µs making 1 call to Package::Stash::BEGIN@6 # spent 65µs making 1 call to warnings::import
7# ABSTRACT: routines for manipulating stashes
8
912µsour $IMPLEMENTATION;
10
11
# spent 5.54ms (2.77+2.78) within Package::Stash::BEGIN@11 which was called: # once (2.77ms+2.78ms) by Class::MOP::Package::BEGIN@9 at line 46
BEGIN {
1214µs $IMPLEMENTATION = $ENV{PACKAGE_STASH_IMPLEMENTATION}
13 if exists $ENV{PACKAGE_STASH_IMPLEMENTATION};
14
1512µs my $err;
1617µs if ($IMPLEMENTATION) {
17 if (!eval "require Package::Stash::$IMPLEMENTATION; 1") {
18 require Carp;
19 Carp::croak("Could not load Package::Stash::$IMPLEMENTATION: $@");
20 }
21 }
22 else {
2313µs for my $impl ('XS', 'PP') {
24179µs if (eval "require Package::Stash::$impl; 1;") {
# spent 321µs executing statements in string eval
2516µs $IMPLEMENTATION = $impl;
2616µs last;
27 }
28 else {
29 $err .= $@;
30 }
31 }
32 }
33
3413µs if (!$IMPLEMENTATION) {
35 require Carp;
36 Carp::croak("Could not find a suitable Package::Stash implementation: $err");
37 }
38
3917µs my $impl = "Package::Stash::$IMPLEMENTATION";
401106µs167µs my $from = $impl->new($impl);
# spent 67µs making 1 call to Package::Stash::XS::new
41136µs116µs my $to = $impl->new(__PACKAGE__);
# spent 16µs making 1 call to Package::Stash::XS::new
421129µs2112µs my $methods = $from->get_all_symbols('CODE');
# spent 101µs making 1 call to Package::Stash::XS::get_all_symbols # spent 11µs making 1 call to Package::Stash::XS::namespace
43150µs for my $meth (keys %$methods) {
44122.76ms241.14ms $to->add_symbol("&$meth" => $methods->{$meth});
# spent 1.07ms making 12 calls to Package::Stash::XS::add_symbol, avg 89µs/call # spent 72µs making 12 calls to Package::Stash::XS::name, avg 6µs/call
45 }
461288µs15.54ms}
# spent 5.54ms making 1 call to Package::Stash::BEGIN@11
47
48150µs11.17ms
# spent 1.24ms (69µs+1.17) within Package::Stash::BEGIN@48 which was called: # once (69µs+1.17ms) by Class::MOP::Package::BEGIN@9 at line 56
use Package::DeprecationManager -deprecations => {
# spent 1.17ms making 1 call to Package::DeprecationManager::import
49 'Package::Stash::add_package_symbol' => 0.14,
50 'Package::Stash::remove_package_glob' => 0.14,
51 'Package::Stash::has_package_symbol' => 0.14,
52 'Package::Stash::get_package_symbol' => 0.14,
53 'Package::Stash::get_or_add_package_symbol' => 0.14,
54 'Package::Stash::remove_package_symbol' => 0.14,
55 'Package::Stash::list_all_package_symbols' => 0.14,
5621.05ms11.24ms};
# spent 1.24ms making 1 call to Package::Stash::BEGIN@48
57
58sub add_package_symbol {
59 deprecated('add_package_symbol is deprecated, please use add_symbol');
60 shift->add_symbol(@_);
61}
62
63sub remove_package_glob {
64 deprecated('remove_package_glob is deprecated, please use remove_glob');
65 shift->remove_glob(@_);
66}
67
68sub has_package_symbol {
69 deprecated('has_package_symbol is deprecated, please use has_symbol');
70 shift->has_symbol(@_);
71}
72
73sub get_package_symbol {
74 deprecated('get_package_symbol is deprecated, please use get_symbol');
75 shift->get_symbol(@_);
76}
77
78sub get_or_add_package_symbol {
79 deprecated('get_or_add_package_symbol is deprecated, please use get_or_add_symbol');
80 shift->get_or_add_symbol(@_);
81}
82
83sub remove_package_symbol {
84 deprecated('remove_package_symbol is deprecated, please use remove_symbol');
85 shift->remove_symbol(@_);
86}
87
88sub list_all_package_symbols {
89 deprecated('list_all_package_symbols is deprecated, please use list_all_symbols');
90 shift->list_all_symbols(@_);
91}
92
93
94114µs1;
95
96__END__