← Index
NYTProf Performance Profile   « line view »
For ../prof.pl
  Run on Wed Dec 14 16:10:05 2022
Reported on Wed Dec 14 16:12:56 2022

Filename/Users/ether/perl5/perlbrew/perls/36.0/lib/5.36.0/if.pm
StatementsExecuted 813 statements in 2.20ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
74214.54ms6.35msif::::workif::work
202019102µs102µsif::::importif::import
54541866µs66µsif::::unimportif::unimport
731138µs38µsif::::CORE:substif::CORE:subst (opcode)
11121µs24µsif::::BEGIN@2if::BEGIN@2
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package if;
22431µs227µs
# spent 24µs (21+3) within if::BEGIN@2 which was called: # once (21µs+3µs) by OpenAPI::Modern::BEGIN@14 at line 2
use strict;
# spent 24µs making 1 call to if::BEGIN@2 # spent 3µs making 1 call to strict::import
310sour $VERSION = '0.0610';
4
5
# spent 6.35ms (4.54+1.81) within if::work which was called 74 times, avg 86µs/call: # 54 times (224µs+62µs) by JSON::Schema::Modern::Annotation::BEGIN@14 or JSON::Schema::Modern::Annotation::BEGIN@15 or JSON::Schema::Modern::Annotation::BEGIN@16 or JSON::Schema::Modern::BEGIN@15 or JSON::Schema::Modern::BEGIN@16 or JSON::Schema::Modern::BEGIN@17 or JSON::Schema::Modern::Document::BEGIN@14 or JSON::Schema::Modern::Document::BEGIN@15 or JSON::Schema::Modern::Document::BEGIN@16 or JSON::Schema::Modern::Document::OpenAPI::BEGIN@15 or JSON::Schema::Modern::Document::OpenAPI::BEGIN@16 or JSON::Schema::Modern::Document::OpenAPI::BEGIN@17 or JSON::Schema::Modern::Error::BEGIN@14 or JSON::Schema::Modern::Error::BEGIN@15 or JSON::Schema::Modern::Error::BEGIN@16 or JSON::Schema::Modern::Result::BEGIN@14 or JSON::Schema::Modern::Result::BEGIN@15 or JSON::Schema::Modern::Result::BEGIN@16 or JSON::Schema::Modern::Utilities::BEGIN@13 or JSON::Schema::Modern::Utilities::BEGIN@14 or JSON::Schema::Modern::Utilities::BEGIN@15 or JSON::Schema::Modern::Vocabulary::Applicator::BEGIN@14 or JSON::Schema::Modern::Vocabulary::Applicator::BEGIN@15 or JSON::Schema::Modern::Vocabulary::Applicator::BEGIN@16 or JSON::Schema::Modern::Vocabulary::BEGIN@14 or JSON::Schema::Modern::Vocabulary::BEGIN@15 or JSON::Schema::Modern::Vocabulary::BEGIN@16 or JSON::Schema::Modern::Vocabulary::Content::BEGIN@14 or JSON::Schema::Modern::Vocabulary::Content::BEGIN@15 or JSON::Schema::Modern::Vocabulary::Content::BEGIN@16 or JSON::Schema::Modern::Vocabulary::Core::BEGIN@14 or JSON::Schema::Modern::Vocabulary::Core::BEGIN@15 or JSON::Schema::Modern::Vocabulary::Core::BEGIN@16 or JSON::Schema::Modern::Vocabulary::FormatAnnotation::BEGIN@14 or JSON::Schema::Modern::Vocabulary::FormatAnnotation::BEGIN@15 or JSON::Schema::Modern::Vocabulary::FormatAnnotation::BEGIN@16 or JSON::Schema::Modern::Vocabulary::FormatAssertion::BEGIN@14 or JSON::Schema::Modern::Vocabulary::FormatAssertion::BEGIN@15 or JSON::Schema::Modern::Vocabulary::FormatAssertion::BEGIN@16 or JSON::Schema::Modern::Vocabulary::MetaData::BEGIN@14 or JSON::Schema::Modern::Vocabulary::MetaData::BEGIN@15 or JSON::Schema::Modern::Vocabulary::MetaData::BEGIN@16 or JSON::Schema::Modern::Vocabulary::OpenAPI::BEGIN@14 or JSON::Schema::Modern::Vocabulary::OpenAPI::BEGIN@15 or JSON::Schema::Modern::Vocabulary::OpenAPI::BEGIN@16 or JSON::Schema::Modern::Vocabulary::Unevaluated::BEGIN@14 or JSON::Schema::Modern::Vocabulary::Unevaluated::BEGIN@15 or JSON::Schema::Modern::Vocabulary::Unevaluated::BEGIN@16 or JSON::Schema::Modern::Vocabulary::Validation::BEGIN@14 or JSON::Schema::Modern::Vocabulary::Validation::BEGIN@15 or JSON::Schema::Modern::Vocabulary::Validation::BEGIN@16 or OpenAPI::Modern::BEGIN@15 or OpenAPI::Modern::BEGIN@16 or OpenAPI::Modern::BEGIN@17 at line 21, avg 5µs/call # 20 times (4.32ms+1.75ms) by JSON::Schema::Modern::Annotation::BEGIN@13 or JSON::Schema::Modern::BEGIN@14 or JSON::Schema::Modern::Document::BEGIN@13 or JSON::Schema::Modern::Document::OpenAPI::BEGIN@14 or JSON::Schema::Modern::Error::BEGIN@13 or JSON::Schema::Modern::Result::BEGIN@13 or JSON::Schema::Modern::Utilities::BEGIN@12 or JSON::Schema::Modern::Vocabulary::Applicator::BEGIN@13 or JSON::Schema::Modern::Vocabulary::BEGIN@13 or JSON::Schema::Modern::Vocabulary::Content::BEGIN@13 or JSON::Schema::Modern::Vocabulary::Core::BEGIN@13 or JSON::Schema::Modern::Vocabulary::FormatAnnotation::BEGIN@13 or JSON::Schema::Modern::Vocabulary::FormatAssertion::BEGIN@13 or JSON::Schema::Modern::Vocabulary::MetaData::BEGIN@13 or JSON::Schema::Modern::Vocabulary::OpenAPI::BEGIN@13 or JSON::Schema::Modern::Vocabulary::Unevaluated::BEGIN@13 or JSON::Schema::Modern::Vocabulary::Validation::BEGIN@13 or JSON::Schema::Modern::Vocabulary::Validation::BEGIN@19 or OpenAPI::Modern::BEGIN@14 or Pod::Simple::BlackBox::BEGIN@289 at line 20, avg 303µs/call
sub work {
67462µs my $method = shift() ? 'import' : 'unimport';
77420µs unless (@_ >= 2) {
8 my $type = ($method eq 'import') ? 'use' : 'no';
9 die "Too few arguments to '$type if' (some code returning an empty list in list context?)"
10 }
117420µs return unless shift; # CONDITION
12
137318µs my $p = $_[0]; # PACKAGE
1473147µs7338µs (my $file = "$p.pm") =~ s!::!/!g;
# spent 38µs making 73 calls to if::CORE:subst, avg 521ns/call
1573564µs require $file; # Works even if $_[0] is a keyword (like open)
1673208µs7375µs my $m = $p->can($method);
# spent 75µs making 73 calls to UNIVERSAL::can, avg 1µs/call
1773283µs732.51ms goto &$m if $m;
# spent 1.84ms making 1 call to POSIX::import # spent 365µs making 54 calls to feature::unimport, avg 7µs/call # spent 300µs making 18 calls to experimental::import, avg 17µs/call
18}
19
2060177µs206.07ms
# spent 102µs within if::import which was called 20 times, avg 5µs/call: # once (42µs+0s) by JSON::Schema::Modern::Vocabulary::MetaData::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary/MetaData.pm # once (6µs+0s) by JSON::Schema::Modern::Vocabulary::Validation::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary/Validation.pm # once (5µs+0s) by JSON::Schema::Modern::Document::OpenAPI::BEGIN@14 at line 14 of JSON/Schema/Modern/Document/OpenAPI.pm # once (4µs+0s) by JSON::Schema::Modern::Vocabulary::FormatAnnotation::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm # once (4µs+0s) by OpenAPI::Modern::BEGIN@14 at line 14 of OpenAPI/Modern.pm # once (4µs+0s) by JSON::Schema::Modern::Vocabulary::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary.pm # once (4µs+0s) by JSON::Schema::Modern::Result::BEGIN@13 at line 13 of JSON/Schema/Modern/Result.pm # once (4µs+0s) by JSON::Schema::Modern::Error::BEGIN@13 at line 13 of JSON/Schema/Modern/Error.pm # once (3µs+0s) by JSON::Schema::Modern::Vocabulary::Applicator::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary/Applicator.pm # once (3µs+0s) by JSON::Schema::Modern::Document::BEGIN@13 at line 13 of JSON/Schema/Modern/Document.pm # once (3µs+0s) by JSON::Schema::Modern::Utilities::BEGIN@12 at line 12 of JSON/Schema/Modern/Utilities.pm # once (3µs+0s) by JSON::Schema::Modern::Vocabulary::FormatAssertion::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary/FormatAssertion.pm # once (3µs+0s) by JSON::Schema::Modern::BEGIN@14 at line 14 of JSON/Schema/Modern.pm # once (3µs+0s) by JSON::Schema::Modern::Vocabulary::Core::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary/Core.pm # once (3µs+0s) by JSON::Schema::Modern::Vocabulary::Unevaluated::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary/Unevaluated.pm # once (3µs+0s) by Pod::Simple::BlackBox::BEGIN@289 at line 289 of Pod/Simple/BlackBox.pm # once (2µs+0s) by JSON::Schema::Modern::Annotation::BEGIN@13 at line 13 of JSON/Schema/Modern/Annotation.pm # once (2µs+0s) by JSON::Schema::Modern::Vocabulary::OpenAPI::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary/OpenAPI.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::Validation::BEGIN@19 at line 19 of JSON/Schema/Modern/Vocabulary/Validation.pm # once (0s+0s) by JSON::Schema::Modern::Vocabulary::Content::BEGIN@13 at line 13 of JSON/Schema/Modern/Vocabulary/Content.pm
sub import { shift; unshift @_, 1; goto &work }
# spent 6.07ms making 20 calls to if::work, avg 303µs/call
21162270µs54286µs
# spent 66µs within if::unimport which was called 54 times, avg 1µs/call: # once (5µs+0s) by JSON::Schema::Modern::BEGIN@15 at line 15 of JSON/Schema/Modern.pm # once (3µs+0s) by JSON::Schema::Modern::Vocabulary::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary.pm # once (3µs+0s) by JSON::Schema::Modern::Vocabulary::MetaData::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary/MetaData.pm # once (2µs+0s) by JSON::Schema::Modern::Vocabulary::OpenAPI::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary/OpenAPI.pm # once (2µs+0s) by JSON::Schema::Modern::Vocabulary::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary.pm # once (2µs+0s) by OpenAPI::Modern::BEGIN@15 at line 15 of OpenAPI/Modern.pm # once (2µs+0s) by OpenAPI::Modern::BEGIN@17 at line 17 of OpenAPI/Modern.pm # once (2µs+0s) by JSON::Schema::Modern::Annotation::BEGIN@14 at line 14 of JSON/Schema/Modern/Annotation.pm # once (2µs+0s) by JSON::Schema::Modern::Result::BEGIN@14 at line 14 of JSON/Schema/Modern/Result.pm # once (2µs+0s) by JSON::Schema::Modern::Result::BEGIN@15 at line 15 of JSON/Schema/Modern/Result.pm # once (2µs+0s) by JSON::Schema::Modern::Vocabulary::Unevaluated::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary/Unevaluated.pm # once (2µs+0s) by JSON::Schema::Modern::Vocabulary::Core::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary/Core.pm # once (2µs+0s) by JSON::Schema::Modern::Error::BEGIN@14 at line 14 of JSON/Schema/Modern/Error.pm # once (2µs+0s) by JSON::Schema::Modern::Vocabulary::Validation::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary/Validation.pm # once (2µs+0s) by JSON::Schema::Modern::Vocabulary::Validation::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary/Validation.pm # once (2µs+0s) by JSON::Schema::Modern::Vocabulary::Validation::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary/Validation.pm # once (2µs+0s) by JSON::Schema::Modern::Document::BEGIN@14 at line 14 of JSON/Schema/Modern/Document.pm # once (2µs+0s) by JSON::Schema::Modern::Vocabulary::Applicator::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary/Applicator.pm # once (2µs+0s) by JSON::Schema::Modern::Document::OpenAPI::BEGIN@16 at line 16 of JSON/Schema/Modern/Document/OpenAPI.pm # once (2µs+0s) by JSON::Schema::Modern::Utilities::BEGIN@13 at line 13 of JSON/Schema/Modern/Utilities.pm # once (1µs+0s) by JSON::Schema::Modern::BEGIN@17 at line 17 of JSON/Schema/Modern.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary.pm # once (1µs+0s) by OpenAPI::Modern::BEGIN@16 at line 16 of OpenAPI/Modern.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::FormatAssertion::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary/FormatAssertion.pm # once (1µs+0s) by JSON::Schema::Modern::Result::BEGIN@16 at line 16 of JSON/Schema/Modern/Result.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::Unevaluated::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary/Unevaluated.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::Unevaluated::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary/Unevaluated.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::Core::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary/Core.pm # once (1µs+0s) by JSON::Schema::Modern::Error::BEGIN@15 at line 15 of JSON/Schema/Modern/Error.pm # once (1µs+0s) by JSON::Schema::Modern::Document::BEGIN@16 at line 16 of JSON/Schema/Modern/Document.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::Applicator::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary/Applicator.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::Applicator::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary/Applicator.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::FormatAnnotation::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::FormatAnnotation::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm # once (1µs+0s) by JSON::Schema::Modern::Document::OpenAPI::BEGIN@17 at line 17 of JSON/Schema/Modern/Document/OpenAPI.pm # once (1µs+0s) by JSON::Schema::Modern::Document::OpenAPI::BEGIN@15 at line 15 of JSON/Schema/Modern/Document/OpenAPI.pm # once (1µs+0s) by JSON::Schema::Modern::Utilities::BEGIN@15 at line 15 of JSON/Schema/Modern/Utilities.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::MetaData::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary/MetaData.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::Content::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary/Content.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::Content::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary/Content.pm # once (1µs+0s) by JSON::Schema::Modern::Vocabulary::Content::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary/Content.pm # once (0s+0s) by JSON::Schema::Modern::Vocabulary::OpenAPI::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary/OpenAPI.pm # once (0s+0s) by JSON::Schema::Modern::Vocabulary::OpenAPI::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary/OpenAPI.pm # once (0s+0s) by JSON::Schema::Modern::BEGIN@16 at line 16 of JSON/Schema/Modern.pm # once (0s+0s) by JSON::Schema::Modern::Vocabulary::FormatAssertion::BEGIN@14 at line 14 of JSON/Schema/Modern/Vocabulary/FormatAssertion.pm # once (0s+0s) by JSON::Schema::Modern::Vocabulary::FormatAssertion::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary/FormatAssertion.pm # once (0s+0s) by JSON::Schema::Modern::Annotation::BEGIN@15 at line 15 of JSON/Schema/Modern/Annotation.pm # once (0s+0s) by JSON::Schema::Modern::Annotation::BEGIN@16 at line 16 of JSON/Schema/Modern/Annotation.pm # once (0s+0s) by JSON::Schema::Modern::Vocabulary::Core::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary/Core.pm # once (0s+0s) by JSON::Schema::Modern::Error::BEGIN@16 at line 16 of JSON/Schema/Modern/Error.pm # once (0s+0s) by JSON::Schema::Modern::Document::BEGIN@15 at line 15 of JSON/Schema/Modern/Document.pm # once (0s+0s) by JSON::Schema::Modern::Vocabulary::FormatAnnotation::BEGIN@15 at line 15 of JSON/Schema/Modern/Vocabulary/FormatAnnotation.pm # once (0s+0s) by JSON::Schema::Modern::Utilities::BEGIN@14 at line 14 of JSON/Schema/Modern/Utilities.pm # once (0s+0s) by JSON::Schema::Modern::Vocabulary::MetaData::BEGIN@16 at line 16 of JSON/Schema/Modern/Vocabulary/MetaData.pm
sub unimport { shift; unshift @_, 0; goto &work }
# spent 286µs making 54 calls to if::work, avg 5µs/call
22
2314µs1;
24__END__
 
# spent 38µs within if::CORE:subst which was called 73 times, avg 521ns/call: # 73 times (38µs+0s) by if::work at line 14, avg 521ns/call
sub if::CORE:subst; # opcode