Profile of Package/Stash/XS.pm

← Index
NYTProf Performance Profile «line view»
For script/ponapi
Run on Wed Feb 10 15:51:26 2016
Reported on Thu Feb 11 09:43:10 2016

Filename | /usr/local/lib/perl/5.18.2/Package/Stash/XS.pm
Statements | Executed 13 statements in 281µs

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
1269 | 1 | 1 | 15.1ms | 16.3ms | Package::Stash::XS::::add_symbolPackage::Stash::XS::add_symbol (xsub)
2220 | 1 | 1 | 11.3ms | 12.3ms | Package::Stash::XS::::get_symbolPackage::Stash::XS::get_symbol (xsub)
1013 | 1 | 1 | 6.23ms | 6.59ms | Package::Stash::XS::::has_symbolPackage::Stash::XS::has_symbol (xsub)
4888 | 6 | 1 | 2.65ms | 2.73ms | Package::Stash::XS::::namespacePackage::Stash::XS::namespace (xsub)
345 | 1 | 1 | 1.28ms | 1.91ms | Package::Stash::XS::::get_or_add_symbolPackage::Stash::XS::get_or_add_symbol (xsub)
143 | 1 | 1 | 908µs | 908µs | Package::Stash::XS::::newPackage::Stash::XS::new (xsub)
1412 | 4 | 1 | 629µs | 629µs | Package::Stash::XS::::namePackage::Stash::XS::name (xsub)
40 | 1 | 1 | 222µs | 241µs | Package::Stash::XS::::list_all_symbolsPackage::Stash::XS::list_all_symbols (xsub)
1 | 1 | 1 | 8µs | 8µs | Package::Stash::XS::::BEGIN@10Package::Stash::XS::BEGIN@10
1 | 1 | 1 | 6µs | 6µs | Package::Stash::XS::::BEGIN@2Package::Stash::XS::BEGIN@2
1 | 1 | 1 | 5µs | 8µs | Package::Stash::XS::::BEGIN@9Package::Stash::XS::BEGIN@9
1 | 1 | 1 | 5µs | 13µs | Package::Stash::XS::::BEGIN@8Package::Stash::XS::BEGIN@8
1 | 1 | 1 | 5µs | 5µs | Package::Stash::XS::::remove_symbolPackage::Stash::XS::remove_symbol (xsub)
1 | 1 | 1 | 4µs | 4µs | Package::Stash::XS::::BEGIN@13Package::Stash::XS::BEGIN@13

Call graph for these subroutines as a Graphviz dot language file.

Line | State ments | Time on line | Calls | Time in subs | Code
--- | --- | --- | --- | --- | ---
1 |  |  |  |  | package Package::Stash::XS;
2 |  |  |  |  | # spent 6µs within Package::Stash::XS::BEGIN@2 which was called: # once (6µs+0s) by Module::Runtime::require_module at line 4 BEGIN {
3 | 1 | 4µs |  |  | $Package::Stash::XS::AUTHORITY = 'cpan:DOY';
4 | 1 | 25µs | 1 | 6µs | } # spent 6µs making 1 call to Package::Stash::XS::BEGIN@2
5 |  |  |  |  | {
6 | 2 | 700ns |  |  | $Package::Stash::XS::VERSION = '0.28';
7 |  |  |  |  | }
8 | 2 | 17µs | 2 | 21µs | # spent 13µs (5+8) within Package::Stash::XS::BEGIN@8 which was called: # once (5µs+8µs) by Module::Runtime::require_module at line 8 use strict; # spent 13µs making 1 call to Package::Stash::XS::BEGIN@8 # spent 8µs making 1 call to strict::import
9 | 2 | 17µs | 2 | 11µs | # spent 8µs (5+3) within Package::Stash::XS::BEGIN@9 which was called: # once (5µs+3µs) by Module::Runtime::require_module at line 9 use warnings; # spent 8µs making 1 call to Package::Stash::XS::BEGIN@9 # spent 3µs making 1 call to warnings::import
10 | 2 | 38µs | 1 | 8µs | # spent 8µs within Package::Stash::XS::BEGIN@10 which was called: # once (8µs+0s) by Module::Runtime::require_module at line 10 use 5.008001; # spent 8µs making 1 call to Package::Stash::XS::BEGIN@10
11 |  |  |  |  | # ABSTRACT: faster and more correct implementation of the Package::Stash API
12 |  |  |  |  |
13 | 2 | 39µs | 1 | 4µs | # spent 4µs within Package::Stash::XS::BEGIN@13 which was called: # once (4µs+0s) by Module::Runtime::require_module at line 13 use XSLoader; # spent 4µs making 1 call to Package::Stash::XS::BEGIN@13
14 |  |  |  |  | XSLoader::load(
15 |  |  |  |  | __PACKAGE__,
16 |  |  |  |  | # we need to be careful not to touch $VERSION at compile time, otherwise
17 |  |  |  |  | # DynaLoader will assume it's set and check against it, which will cause
18 |  |  |  |  | # fail when being run in the checkout without dzil having set the actual
19 |  |  |  |  | # $VERSION
20 |  |  |  |  | exists $Package::Stash::XS::{VERSION}
21 | 1 | 135µs | 1 | 128µs | ? ${ $Package::Stash::XS::{VERSION} } : (), # spent 128µs making 1 call to XSLoader::load
22 |  |  |  |  | );
23 |  |  |  |  |
24 |  |  |  |  |
25 | 1 | 4µs |  |  | 1;
26 |  |  |  |  |
27 |  |  |  |  | __END__
|  |  |  |  | # spent 16.3ms (15.1+1.19) within Package::Stash::XS::add_symbol which was called 1269 times, avg 13µs/call: # 1269 times (15.1ms+1.19ms) by Class::MOP::Package::add_package_symbol at line 230 of Class/MOP/Package.pm, avg 13µs/call sub Package::Stash::XS::add_symbol; # xsub
|  |  |  |  | # spent 1.91ms (1.28+632µs) within Package::Stash::XS::get_or_add_symbol which was called 345 times, avg 6µs/call: # 345 times (1.28ms+632µs) by Class::MOP::Package::get_or_add_package_symbol at line 252 of Class/MOP/Package.pm, avg 6µs/call sub Package::Stash::XS::get_or_add_symbol; # xsub
|  |  |  |  | # spent 12.3ms (11.3+1.07) within Package::Stash::XS::get_symbol which was called 2220 times, avg 6µs/call: # 2220 times (11.3ms+1.07ms) by Class::MOP::Package::get_package_symbol at line 247 of Class/MOP/Package.pm, avg 6µs/call sub Package::Stash::XS::get_symbol; # xsub
|  |  |  |  | # spent 6.59ms (6.23+364µs) within Package::Stash::XS::has_symbol which was called 1013 times, avg 7µs/call: # 1013 times (6.23ms+364µs) by Class::MOP::Package::has_package_symbol at line 242 of Class/MOP/Package.pm, avg 7µs/call sub Package::Stash::XS::has_symbol; # xsub
|  |  |  |  | # spent 241µs (222+19) within Package::Stash::XS::list_all_symbols which was called 40 times, avg 6µs/call: # 40 times (222µs+19µs) by Class::MOP::Package::list_all_package_symbols at line 262 of Class/MOP/Package.pm, avg 6µs/call sub Package::Stash::XS::list_all_symbols; # xsub
|  |  |  |  | # spent 629µs within Package::Stash::XS::name which was called 1412 times, avg 445ns/call: # 1269 times (549µs+0s) by Package::Stash::XS::add_symbol at line 230 of Class/MOP/Package.pm, avg 433ns/call # 105 times (61µs+0s) by Package::Stash::XS::namespace at line 252 of Class/MOP/Package.pm, avg 579ns/call # 35 times (18µs+0s) by Package::Stash::XS::namespace at line 247 of Class/MOP/Package.pm, avg 506ns/call # 3 times (1µs+0s) by Package::Stash::XS::namespace at line 242 of Class/MOP/Package.pm, avg 467ns/call sub Package::Stash::XS::name; # xsub
|  |  |  |  | # spent 2.73ms (2.65+80µs) within Package::Stash::XS::namespace which was called 4888 times, avg 558ns/call: # 2220 times (1.05ms+18µs) by Package::Stash::XS::get_symbol at line 247 of Class/MOP/Package.pm, avg 482ns/call # 1269 times (643µs+0s) by Package::Stash::XS::add_symbol at line 230 of Class/MOP/Package.pm, avg 506ns/call # 1013 times (362µs+1µs) by Package::Stash::XS::has_symbol at line 242 of Class/MOP/Package.pm, avg 359ns/call # 345 times (571µs+61µs) by Package::Stash::XS::get_or_add_symbol at line 252 of Class/MOP/Package.pm, avg 2µs/call # 40 times (19µs+0s) by Package::Stash::XS::list_all_symbols at line 262 of Class/MOP/Package.pm, avg 470ns/call # once (500ns+0s) by Package::Stash::XS::remove_symbol at line 257 of Class/MOP/Package.pm sub Package::Stash::XS::namespace; # xsub
|  |  |  |  | # spent 908µs within Package::Stash::XS::new which was called 143 times, avg 6µs/call: # 143 times (908µs+0s) by Class::MOP::Package::_package_stash at line 218 of Class/MOP/Package.pm, avg 6µs/call sub Package::Stash::XS::new; # xsub
|  |  |  |  | # spent 5µs (5+500ns) within Package::Stash::XS::remove_symbol which was called: # once (5µs+500ns) by Class::MOP::Package::remove_package_symbol at line 257 of Class/MOP/Package.pm sub Package::Stash::XS::remove_symbol; # xsub