| Filename | /home/doy/coding/Package-Stash-XS/Package-Stash-XS-0.18/blib/lib/Package/Stash/XS.pm |
| Statements | Executed 12 statements in 851µs |
| Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
|---|---|---|---|---|---|
| 8936 | 5 | 2 | 166ms | 207ms | Package::Stash::XS::get_symbol (xsub) |
| 2208 | 3 | 3 | 112ms | 123ms | Package::Stash::XS::add_symbol (xsub) |
| 13886 | 15 | 3 | 63.9ms | 63.9ms | Package::Stash::XS::namespace (xsub) |
| 2180 | 4 | 2 | 41.7ms | 51.5ms | Package::Stash::XS::has_symbol (xsub) |
| 889 | 1 | 1 | 23.9ms | 29.1ms | Package::Stash::XS::get_or_add_symbol (xsub) |
| 825 | 1 | 1 | 19.6ms | 22.9ms | Package::Stash::XS::remove_glob (xsub) |
| 3134 | 5 | 3 | 15.8ms | 15.8ms | Package::Stash::XS::name (xsub) |
| 389 | 8 | 3 | 8.19ms | 8.19ms | Package::Stash::XS::new (xsub) |
| 181 | 2 | 2 | 7.56ms | 8.59ms | Package::Stash::XS::list_all_symbols (xsub) |
| 50 | 2 | 2 | 2.37ms | 2.61ms | Package::Stash::XS::get_all_symbols (xsub) |
| 1 | 1 | 1 | 129µs | 129µs | Package::Stash::XS::bootstrap (xsub) |
| 1 | 1 | 1 | 58µs | 58µs | Package::Stash::XS::BEGIN@2 |
| 1 | 1 | 1 | 51µs | 121µs | Package::Stash::XS::BEGIN@6 |
| 1 | 1 | 1 | 39µs | 57µs | Package::Stash::XS::BEGIN@5 |
| 1 | 1 | 1 | 22µs | 22µs | Package::Stash::XS::BEGIN@9 |
| Line | State ments |
Time on line |
Calls | Time in subs |
Code |
|---|---|---|---|---|---|
| 1 | package Package::Stash::XS; | ||||
| 2 | # spent 58µs within Package::Stash::XS::BEGIN@2 which was called:
# once (58µs+0s) by Package::Stash::BEGIN@11 at line 4 | ||||
| 3 | 1 | 41µs | $Package::Stash::XS::VERSION = '0.18'; | ||
| 4 | 1 | 78µs | 1 | 58µs | } # spent 58µs making 1 call to Package::Stash::XS::BEGIN@2 |
| 5 | 3 | 104µs | 2 | 74µs | # spent 57µs (39+18) within Package::Stash::XS::BEGIN@5 which was called:
# once (39µs+18µs) by Package::Stash::BEGIN@11 at line 5 # spent 57µs making 1 call to Package::Stash::XS::BEGIN@5
# spent 18µs making 1 call to strict::import |
| 6 | 3 | 99µs | 2 | 190µs | # spent 121µs (51+70) within Package::Stash::XS::BEGIN@6 which was called:
# once (51µs+70µs) by Package::Stash::BEGIN@11 at line 6 # spent 121µs making 1 call to Package::Stash::XS::BEGIN@6
# spent 70µs making 1 call to warnings::import |
| 7 | # ABSTRACT: faster and more correct implementation of the Package::Stash API | ||||
| 8 | |||||
| 9 | 3 | 175µs | 1 | 22µs | # spent 22µs within Package::Stash::XS::BEGIN@9 which was called:
# once (22µs+0s) by Package::Stash::BEGIN@11 at line 9 # spent 22µs making 1 call to Package::Stash::XS::BEGIN@9 |
| 10 | XSLoader::load( | ||||
| 11 | __PACKAGE__, | ||||
| 12 | # we need to be careful not to touch $VERSION at compile time, otherwise | ||||
| 13 | # DynaLoader will assume it's set and check against it, which will cause | ||||
| 14 | # fail when being run in the checkout without dzil having set the actual | ||||
| 15 | # $VERSION | ||||
| 16 | exists $Package::Stash::XS::{VERSION} | ||||
| 17 | 1 | 336µs | 1 | 306µs | ? ${ $Package::Stash::XS::{VERSION} } : (), # spent 306µs making 1 call to XSLoader::load |
| 18 | ); | ||||
| 19 | |||||
| 20 | |||||
| 21 | 1 | 18µs | 1; | ||
| 22 | |||||
| 23 | __END__ | ||||
# spent 123ms (112+11.1) within Package::Stash::XS::add_symbol which was called 2208 times, avg 56µs/call:
# 2191 times (112ms+11.0ms) by Class::MOP::Package::add_package_symbol at line 106 of Class/MOP/Package.pm, avg 56µs/call
# 12 times (421µs+46µs) by Package::Stash::BEGIN@11 at line 44 of Package/Stash.pm, avg 39µs/call
# 5 times (169µs+24µs) by namespace::clean::get_class_store at line 149 of namespace/clean.pm, avg 39µs/call | |||||
# spent 129µs within Package::Stash::XS::bootstrap which was called:
# once (129µs+0s) by DynaLoader::bootstrap at line 223 of DynaLoader.pm | |||||
# spent 2.61ms (2.37+235µs) within Package::Stash::XS::get_all_symbols which was called 50 times, avg 52µs/call:
# 49 times (2.32ms+227µs) by Class::MOP::Package::get_all_package_symbols at line 143 of Class/MOP/Package.pm, avg 52µs/call
# once (56µs+8µs) by Package::Stash::BEGIN@11 at line 42 of Package/Stash.pm | |||||
# spent 29.1ms (23.9+5.23) within Package::Stash::XS::get_or_add_symbol which was called 889 times, avg 33µs/call:
# 889 times (23.9ms+5.23ms) by Class::MOP::Package::get_or_add_package_symbol at line 128 of Class/MOP/Package.pm, avg 33µs/call | |||||
# spent 207ms (166+40.7) within Package::Stash::XS::get_symbol which was called 8936 times, avg 23µs/call:
# 4712 times (95.8ms+22.8ms) by Class::MOP::Package::get_package_symbol at line 123 of Class/MOP/Package.pm, avg 25µs/call
# 3300 times (53.7ms+13.9ms) by namespace::clean::__ANON__[/home/doy/coding/src/namespace-clean/namespace-clean-0.18/blib/lib/namespace/clean.pm:59] at line 51 of namespace/clean.pm, avg 21µs/call
# 825 times (14.5ms+3.49ms) by namespace::clean::__ANON__[/home/doy/coding/src/namespace-clean/namespace-clean-0.18/blib/lib/namespace/clean.pm:59] at line 42 of namespace/clean.pm, avg 22µs/call
# 94 times (1.74ms+475µs) by namespace::clean::get_functions at line 160 of namespace/clean.pm, avg 24µs/call
# 5 times (109µs+24µs) by namespace::clean::get_class_store at line 151 of namespace/clean.pm, avg 27µs/call | |||||
# spent 51.5ms (41.7+9.80) within Package::Stash::XS::has_symbol which was called 2180 times, avg 24µs/call:
# 1258 times (23.8ms+5.65ms) by Class::MOP::Package::has_package_symbol at line 118 of Class/MOP/Package.pm, avg 23µs/call
# 825 times (15.8ms+3.64ms) by namespace::clean::__ANON__[/home/doy/coding/src/namespace-clean/namespace-clean-0.18/blib/lib/namespace/clean.pm:59] at line 34 of namespace/clean.pm, avg 24µs/call
# 92 times (1.94ms+482µs) by namespace::clean::import at line 109 of namespace/clean.pm, avg 26µs/call
# 5 times (106µs+24µs) by namespace::clean::get_class_store at line 149 of namespace/clean.pm, avg 26µs/call | |||||
# spent 8.59ms (7.56+1.03) within Package::Stash::XS::list_all_symbols which was called 181 times, avg 47µs/call:
# 176 times (7.34ms+1.01ms) by Class::MOP::Package::list_all_package_symbols at line 138 of Class/MOP/Package.pm, avg 47µs/call
# 5 times (225µs+25µs) by namespace::clean::get_functions at line 160 of namespace/clean.pm, avg 50µs/call | |||||
# spent 15.8ms within Package::Stash::XS::name which was called 3134 times, avg 5µs/call:
# 2191 times (11.0ms+0s) by Package::Stash::XS::add_symbol at line 106 of Class/MOP/Package.pm, avg 5µs/call
# 825 times (4.17ms+0s) by namespace::clean::__ANON__[/home/doy/coding/src/namespace-clean/namespace-clean-0.18/blib/lib/namespace/clean.pm:59] at line 43 of namespace/clean.pm, avg 5µs/call
# 101 times (485µs+0s) by Package::Stash::XS::get_or_add_symbol at line 128 of Class/MOP/Package.pm, avg 5µs/call
# 12 times (46µs+0s) by Package::Stash::XS::add_symbol at line 44 of Package/Stash.pm, avg 4µs/call
# 5 times (24µs+0s) by Package::Stash::XS::add_symbol at line 149 of namespace/clean.pm, avg 5µs/call | |||||
# spent 63.9ms within Package::Stash::XS::namespace which was called 13886 times, avg 5µs/call:
# 4712 times (22.8ms+0s) by Package::Stash::XS::get_symbol at line 123 of Class/MOP/Package.pm, avg 5µs/call
# 3300 times (13.9ms+0s) by Package::Stash::XS::get_symbol at line 51 of namespace/clean.pm, avg 4µs/call
# 1258 times (5.65ms+0s) by Package::Stash::XS::has_symbol at line 118 of Class/MOP/Package.pm, avg 4µs/call
# 889 times (4.74ms+0s) by Package::Stash::XS::get_or_add_symbol at line 128 of Class/MOP/Package.pm, avg 5µs/call
# 825 times (4.10ms+0s) by namespace::clean::__ANON__[/home/doy/coding/src/namespace-clean/namespace-clean-0.18/blib/lib/namespace/clean.pm:59] at line 36 of namespace/clean.pm, avg 5µs/call
# 825 times (3.64ms+0s) by Package::Stash::XS::has_symbol at line 34 of namespace/clean.pm, avg 4µs/call
# 825 times (3.49ms+0s) by Package::Stash::XS::get_symbol at line 42 of namespace/clean.pm, avg 4µs/call
# 825 times (3.30ms+0s) by Package::Stash::XS::remove_glob at line 53 of namespace/clean.pm, avg 4µs/call
# 176 times (1.01ms+0s) by Package::Stash::XS::list_all_symbols at line 138 of Class/MOP/Package.pm, avg 6µs/call
# 99 times (500µs+0s) by Package::Stash::XS::get_symbol or Package::Stash::XS::list_all_symbols at line 160 of namespace/clean.pm, avg 5µs/call
# 92 times (482µs+0s) by Package::Stash::XS::has_symbol at line 109 of namespace/clean.pm, avg 5µs/call
# 49 times (227µs+0s) by Package::Stash::XS::get_all_symbols at line 143 of Class/MOP/Package.pm, avg 5µs/call
# 5 times (24µs+0s) by Package::Stash::XS::get_symbol at line 151 of namespace/clean.pm, avg 5µs/call
# 5 times (24µs+0s) by Package::Stash::XS::has_symbol at line 149 of namespace/clean.pm, avg 5µs/call
# once (8µs+0s) by Package::Stash::XS::get_all_symbols at line 42 of Package/Stash.pm | |||||
# spent 8.19ms within Package::Stash::XS::new which was called 389 times, avg 21µs/call:
# 264 times (5.58ms+0s) by Class::MOP::Package::_package_stash at line 94 of Class/MOP/Package.pm, avg 21µs/call
# 54 times (1.40ms+0s) by namespace::clean::__ANON__[/home/doy/coding/src/namespace-clean/namespace-clean-0.18/blib/lib/namespace/clean.pm:59] at line 27 of namespace/clean.pm, avg 26µs/call
# 54 times (924µs+0s) by namespace::clean::__ANON__[/home/doy/coding/src/namespace-clean/namespace-clean-0.18/blib/lib/namespace/clean.pm:59] at line 26 of namespace/clean.pm, avg 17µs/call
# 5 times (102µs+0s) by namespace::clean::get_functions at line 158 of namespace/clean.pm, avg 20µs/call
# 5 times (72µs+0s) by namespace::clean::get_class_store at line 147 of namespace/clean.pm, avg 14µs/call
# 5 times (65µs+0s) by namespace::clean::import at line 97 of namespace/clean.pm, avg 13µs/call
# once (40µs+0s) by Package::Stash::BEGIN@11 at line 40 of Package/Stash.pm
# once (10µs+0s) by Package::Stash::BEGIN@11 at line 41 of Package/Stash.pm | |||||
# spent 22.9ms (19.6+3.30) within Package::Stash::XS::remove_glob which was called 825 times, avg 28µs/call:
# 825 times (19.6ms+3.30ms) by namespace::clean::__ANON__[/home/doy/coding/src/namespace-clean/namespace-clean-0.18/blib/lib/namespace/clean.pm:59] at line 53 of namespace/clean.pm, avg 28µs/call |