Profile of parent.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:09 2016

Filename | /usr/share/perl/5.18/parent.pm
Statements | Executed 689 statements in 3.99ms

Subroutines
Calls | P | F | Exclusive Time | Inclusive Time | Subroutine
--- | --- | --- | --- | --- | ---
71 | 71 | 71 | 12.6ms | 78.3ms | parent::::importparent::import (recurses: max depth 2, inclusive time 30.3ms)
85 | 1 | 1 | 343µs | 343µs | parent::::CORE:substparent::CORE:subst (opcode)
1 | 1 | 1 | 12µs | 33µs | parent::::BEGIN@3parent::BEGIN@3
1 | 1 | 1 | 8µs | 16µs | parent::::BEGIN@2parent::BEGIN@2
1 | 1 | 1 | 6µs | 14µs | parent::::BEGIN@25parent::BEGIN@25

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

Line | State ments | Time on line | Calls | Time in subs | Code
--- | --- | --- | --- | --- | ---
1 |  |  |  |  | package parent;
2 | 2 | 21µs | 2 | 24µs | # spent 16µs (8+8) within parent::BEGIN@2 which was called: # once (8µs+8µs) by Path::Class::Dir::BEGIN@10 at line 2 use strict; # spent 16µs making 1 call to parent::BEGIN@2 # spent 8µs making 1 call to strict::import
3 | 2 | 113µs | 2 | 53µs | # spent 33µs (12+20) within parent::BEGIN@3 which was called: # once (12µs+20µs) by Path::Class::Dir::BEGIN@10 at line 3 use vars qw($VERSION); # spent 33µs making 1 call to parent::BEGIN@3 # spent 20µs making 1 call to vars::import
4 | 1 | 400ns |  |  | $VERSION = '0.225';
5 |  |  |  |  |
6 |  |  |  |  | # spent 78.3ms (12.6+65.7) within parent::import which was called 71 times, avg 1.10ms/call: # once (196µs+24.2ms) by Plack::Handler::Standalone::BEGIN@4 at line 4 of Plack/Handler/Standalone.pm # once (1.21ms+15.8ms) by HTTP::Headers::ActionPack::MediaType::BEGIN@15 at line 15 of HTTP/Headers/ActionPack/MediaType.pm # once (572µs+10.5ms) by Path::Class::Dir::BEGIN@10 at line 10 of Path/Class/Dir.pm # once (462µs+7.74ms) by Moose::Meta::Attribute::BEGIN@19 at line 19 of Moose/Meta/Attribute.pm # once (157µs+5.91ms) by Moose::Meta::Method::Overridden::BEGIN@7 at line 7 of Moose/Meta/Method/Overridden.pm # once (413µs+2.41ms) by Class::MOP::Class::BEGIN@20 at line 20 of Class/MOP/Class.pm # once (1.39ms+1.19ms) by HTTP::Headers::ActionPack::MediaTypeList::BEGIN@17 at line 17 of HTTP/Headers/ActionPack/MediaTypeList.pm # once (619µs+1.26ms) by Class::MOP::Method::Meta::BEGIN@12 at line 12 of Class/MOP/Method/Meta.pm # once (313µs+1.22ms) by Class::MOP::Method::Accessor::BEGIN@10 at line 10 of Class/MOP/Method/Accessor.pm # once (264µs+752µs) by Plack::Middleware::MethodOverride::BEGIN@10 at line 10 of Plack/Middleware/MethodOverride.pm # once (421µs+76µs) by Class::MOP::Method::Constructor::BEGIN@10 at line 10 of Class/MOP/Method/Constructor.pm # once (202µs+77µs) by Class::MOP::Mixin::AttributeCore::BEGIN@9 at line 9 of Class/MOP/Mixin/AttributeCore.pm # once (43µs+11µs) by Moose::Meta::Role::BEGIN@19 at line 19 of Moose/Meta/Role.pm # once (27µs+7µs) by Moose::Meta::Method::Accessor::BEGIN@9 at line 9 of Moose/Meta/Method/Accessor.pm # once (26µs+6µs) by Moose::Meta::Role::Attribute::BEGIN@10 at line 10 of Moose/Meta/Role/Attribute.pm # once (23µs+6µs) by Moose::Meta::TypeConstraint::Enum::BEGIN@11 at line 11 of Moose/Meta/TypeConstraint/Enum.pm # once (21µs+7µs) by Class::MOP::Attribute::BEGIN@13 at line 13 of Class/MOP/Attribute.pm # once (23µs+5µs) by Moose::Meta::Method::Constructor::BEGIN@9 at line 9 of Moose/Meta/Method/Constructor.pm # once (22µs+5µs) by Moose::Meta::Role::Composite::BEGIN@10 at line 10 of Moose/Meta/Role/Composite.pm # once (21µs+5µs) by Moose::Meta::Method::Meta::BEGIN@7 at line 7 of Moose/Meta/Method/Meta.pm # once (20µs+6µs) by Path::Class::File::BEGIN@9 at line 9 of Path/Class/File.pm # once (22µs+4µs) by Plack::Util::IOWithPath::BEGIN@368 at line 368 of Plack/Util.pm # once (21µs+5µs) by PONAPI::Server::BEGIN@20 at line 20 of lib/PONAPI/Server.pm # once (20µs+6µs) by Moose::Meta::Instance::BEGIN@9 at line 9 of Moose/Meta/Instance.pm # once (19µs+5µs) by Moose::Meta::TypeConstraint::DuckType::BEGIN@15 at line 15 of Moose/Meta/TypeConstraint/DuckType.pm # once (20µs+4µs) by Moose::Meta::TypeConstraint::Registry::BEGIN@10 at line 10 of Moose/Meta/TypeConstraint/Registry.pm # once (18µs+6µs) by Moose::Meta::TypeConstraint::Parameterizable::BEGIN@8 at line 8 of Moose/Meta/TypeConstraint/Parameterizable.pm # once (18µs+5µs) by Moose::Meta::Method::Delegation::BEGIN@9 at line 9 of Moose/Meta/Method/Delegation.pm # once (18µs+5µs) by Moose::Meta::Method::Destructor::BEGIN@11 at line 11 of Moose/Meta/Method/Destructor.pm # once (19µs+4µs) by Plack::Middleware::Lint::BEGIN@5 at line 5 of Plack/Middleware/Lint.pm # once (17µs+5µs) by Moose::Meta::Method::Augmented::BEGIN@7 at line 7 of Moose/Meta/Method/Augmented.pm # once (18µs+4µs) by Plack::Middleware::AccessLog::BEGIN@4 at line 4 of Plack/Middleware/AccessLog.pm # once (18µs+4µs) by Moose::Meta::Role::Method::BEGIN@7 at line 7 of Moose/Meta/Role/Method.pm # once (16µs+6µs) by Moose::Meta::Role::Application::ToClass::BEGIN@12 at line 12 of Moose/Meta/Role/Application/ToClass.pm # once (15µs+6µs) by Moose::Meta::Role::Application::RoleSummation::BEGIN@13 at line 13 of Moose/Meta/Role/Application/RoleSummation.pm # once (19µs+2µs) by PONAPI::Utils::Names::BEGIN@7 at line 7 of lib/PONAPI/Utils/Names.pm # once (17µs+4µs) by Moose::Meta::TypeConstraint::Parameterized::BEGIN@13 at line 13 of Moose/Meta/TypeConstraint/Parameterized.pm # once (16µs+4µs) by Plack::Middleware::StackTrace::BEGIN@4 at line 4 of Plack/Middleware/StackTrace.pm # once (15µs+4µs) by Moose::Meta::TypeConstraint::Union::BEGIN@12 at line 12 of Moose/Meta/TypeConstraint/Union.pm # once (15µs+5µs) by Moose::Meta::Class::Immutable::Trait::BEGIN@10 at line 10 of Moose/Meta/Class/Immutable/Trait.pm # once (16µs+3µs) by Moose::Meta::Class::BEGIN@22 at line 22 of Moose/Meta/Class.pm # once (15µs+4µs) by Moose::Meta::TypeConstraint::Class::BEGIN@12 at line 12 of Moose/Meta/TypeConstraint/Class.pm # once (15µs+3µs) by Moose::Meta::TypeConstraint::Role::BEGIN@12 at line 12 of Moose/Meta/TypeConstraint/Role.pm # once (14µs+4µs) by Moose::Meta::Role::Application::ToRole::BEGIN@8 at line 8 of Moose/Meta/Role/Application/ToRole.pm # once (13µs+5µs) by Moose::Meta::TypeCoercion::Union::BEGIN@10 at line 10 of Moose/Meta/TypeCoercion/Union.pm # once (14µs+3µs) by Moose::Meta::Role::Method::Required::BEGIN@13 at line 13 of Moose/Meta/Role/Method/Required.pm # once (14µs+4µs) by Moose::Meta::Role::Method::Conflicting::BEGIN@9 at line 9 of Moose/Meta/Role/Method/Conflicting.pm # once (14µs+3µs) by Class::MOP::Instance::BEGIN@9 at line 9 of Class/MOP/Instance.pm # once (13µs+4µs) by Class::MOP::Method::Wrapped::BEGIN@10 at line 10 of Class/MOP/Method/Wrapped.pm # once (14µs+3µs) by Class::MOP::Mixin::HasAttributes::BEGIN@9 at line 9 of Class/MOP/Mixin/HasAttributes.pm # once (13µs+4µs) by Moose::Meta::Role::Application::ToInstance::BEGIN@12 at line 12 of Moose/Meta/Role/Application/ToInstance.pm # once (13µs+3µs) by Class::MOP::Mixin::HasOverloads::BEGIN@15 at line 15 of Class/MOP/Mixin/HasOverloads.pm # once (15µs+1µs) by Return::MultiLevel::BEGIN@9 at line 9 of Return/MultiLevel.pm # once (13µs+3µs) by Class::MOP::Overload::BEGIN@11 at line 11 of Class/MOP/Overload.pm # once (12µs+3µs) by Class::MOP::Mixin::HasMethods::BEGIN@12 at line 12 of Class/MOP/Mixin/HasMethods.pm # once (1.02ms+-1.02ms) by Class::MOP::Module::BEGIN@7 at line 7 of Class/MOP/Module.pm # once (18µs+-18µs) by Moose::Meta::Method::BEGIN@9 at line 9 of Moose/Meta/Method.pm # once (270µs+-270µs) by HTTP::Headers::ActionPack::Core::BaseHeaderWithParams::BEGIN@15 at line 15 of HTTP/Headers/ActionPack/Core/BaseHeaderWithParams.pm # once (18µs+-18µs) by Moose::Meta::Mixin::AttributeCore::BEGIN@7 at line 7 of Moose/Meta/Mixin/AttributeCore.pm # once (20µs+-20µs) by Plack::Middleware::ContentLength::BEGIN@4 at line 4 of Plack/Middleware/ContentLength.pm # once (356µs+-356µs) by Plack::Middleware::BEGIN@5 at line 5 of Plack/Middleware.pm # once (20µs+-20µs) by HTTP::Headers::ActionPack::Core::BaseHeaderList::BEGIN@16 at line 16 of HTTP/Headers/ActionPack/Core/BaseHeaderList.pm # once (486µs+-486µs) by HTTP::Headers::ActionPack::PriorityList::BEGIN@18 at line 18 of HTTP/Headers/ActionPack/PriorityList.pm # once (14µs+-14µs) by Class::MOP::Method::Inlined::BEGIN@9 at line 9 of Class/MOP/Method/Inlined.pm # once (453µs+-453µs) by HTTP::Headers::ActionPack::Core::BaseHeaderType::BEGIN@20 at line 20 of HTTP/Headers/ActionPack/Core/BaseHeaderType.pm # once (15µs+-15µs) by Class::MOP::Method::Generated::BEGIN@9 at line 9 of Class/MOP/Method/Generated.pm # once (14µs+-14µs) by Class::MOP::Object::BEGIN@7 at line 7 of Class/MOP/Object.pm # once (1.82ms+-1.82ms) by Plack::Handler::HTTP::Server::PSGI::BEGIN@5 at line 5 of Plack/Handler/HTTP/Server/PSGI.pm # once (16µs+-16µs) by Plack::HTTPParser::BEGIN@3 at line 3 of Plack/HTTPParser.pm # once (14µs+-14µs) by Class::MOP::Package::BEGIN@12 at line 12 of Class/MOP/Package.pm # once (1.07ms+-1.07ms) by Class::MOP::Method::BEGIN@9 at line 9 of Class/MOP/Method.pm sub import {
7 | 71 | 28µs |  |  | my $class = shift;
8 |  |  |  |  |
9 | 71 | 70µs |  |  | my $inheritor = caller(0);
10 |  |  |  |  |
11 | 71 | 69µs |  |  | if ( @_ and $_[0] eq '-norequire' ) {
12 |  |  |  |  | shift @_;
13 |  |  |  |  | } else {
14 | 71 | 128µs |  |  | for ( my @filename = @_ ) {
15 | 85 | 20µs |  |  | if ( $_ eq $inheritor ) {
16 |  |  |  |  | warn "Class '$inheritor' tried to inherit from itself\n";
17 |  |  |  |  | };
18 |  |  |  |  |
19 | 85 | 540µs | 85 | 343µs | s{::|'}{/}g; # spent 343µs making 85 calls to parent::CORE:subst, avg 4µs/call
20 | 85 | 2.05ms |  |  | require "$_.pm"; # dies if the file is not found
21 |  |  |  |  | }
22 |  |  |  |  | }
23 |  |  |  |  |
24 |  |  |  |  | {
25 | 73 | 329µs | 2 | 22µs | # spent 14µs (6+8) within parent::BEGIN@25 which was called: # once (6µs+8µs) by Path::Class::Dir::BEGIN@10 at line 25 no strict 'refs'; # spent 14µs making 1 call to parent::BEGIN@25 # spent 8µs making 1 call to strict::unimport
26 | 71 | 620µs |  |  | push @{"$inheritor\::ISA"}, @_;
27 |  |  |  |  | };
28 |  |  |  |  | };
29 |  |  |  |  |
30 | 1 | 2µs |  |  | "All your base are belong to us"
31 |  |  |  |  |
32 |  |  |  |  | __END__
|  |  |  |  | # spent 343µs within parent::CORE:subst which was called 85 times, avg 4µs/call: # 85 times (343µs+0s) by parent::import at line 19, avg 4µs/call sub parent::CORE:subst; # opcode