Filename | /usr/share/perl/5.18/strict.pm |
Statements | Executed 2275 statements in 2.58ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
157 | 2 | 1 | 1.25ms | 1.25ms | bits | strict::
117 | 82 | 79 | 602µs | 1.59ms | import | strict::
40 | 40 | 30 | 250µs | 515µs | unimport | strict::
1 | 1 | 1 | 17µs | 17µs | CORE:regcomp (opcode) | strict::
1 | 1 | 1 | 6µs | 6µs | CORE:match (opcode) | strict::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package strict; | ||||
2 | |||||
3 | 1 | 700ns | $strict::VERSION = "1.07"; | ||
4 | |||||
5 | # Verify that we're called correctly so that strictures will work. | ||||
6 | 1 | 40µs | 2 | 22µs | unless ( __FILE__ =~ /(^|[\/\\])\Q${\__PACKAGE__}\E\.pmc?$/ ) { # spent 17µs making 1 call to strict::CORE:regcomp
# spent 6µs making 1 call to strict::CORE:match |
7 | # Can't use Carp, since Carp uses us! | ||||
8 | my (undef, $f, $l) = caller; | ||||
9 | die("Incorrect use of pragma '${\__PACKAGE__}' at $f line $l.\n"); | ||||
10 | } | ||||
11 | |||||
12 | 1 | 2µs | my %bitmask = ( | ||
13 | refs => 0x00000002, | ||||
14 | subs => 0x00000200, | ||||
15 | vars => 0x00000400 | ||||
16 | ); | ||||
17 | 1 | 800ns | my %explicit_bitmask = ( | ||
18 | refs => 0x00000020, | ||||
19 | subs => 0x00000040, | ||||
20 | vars => 0x00000080 | ||||
21 | ); | ||||
22 | |||||
23 | sub bits { | ||||
24 | 157 | 56µs | my $bits = 0; | ||
25 | 157 | 26µs | my @wrong; | ||
26 | 157 | 162µs | foreach my $s (@_) { | ||
27 | 390 | 161µs | if (exists $bitmask{$s}) { | ||
28 | 390 | 313µs | $^H |= $explicit_bitmask{$s}; | ||
29 | } | ||||
30 | else { push @wrong, $s }; | ||||
31 | 390 | 293µs | $bits |= $bitmask{$s} || 0; | ||
32 | } | ||||
33 | 157 | 48µs | if (@wrong) { | ||
34 | require Carp; | ||||
35 | Carp::croak("Unknown 'strict' tag(s) '@wrong'"); | ||||
36 | } | ||||
37 | 157 | 578µs | $bits; | ||
38 | } | ||||
39 | |||||
40 | 1 | 900ns | my @default_bits = qw(refs subs vars); | ||
41 | |||||
42 | # spent 1.59ms (602µs+988µs) within strict::import which was called 117 times, avg 14µs/call:
# 36 times (134µs+293µs) by strictures::import at line 33 of strictures.pm, avg 12µs/call
# once (12µs+15µs) by Config::BEGIN@5 at line 5 of Config_heavy.pl
# once (16µs+9µs) by Exporter::Heavy::BEGIN@3 at line 3 of Exporter/Heavy.pm
# once (7µs+12µs) by Encode::Alias::BEGIN@2 at line 2 of Encode/Alias.pm
# once (6µs+12µs) by HTTP::Tiny::BEGIN@3 at line 3 of /opt/flows/lib/lib/perl5/HTTP/Tiny.pm
# once (5µs+12µs) by Log::Any::Adapter::Null::BEGIN@2 at line 2 of /opt/flows/lib/lib/perl5/Log/Any/Adapter/Base.pm
# once (6µs+10µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@2.11 at line 2 of /opt/flows/lib/lib/perl5/Log/Any/Adapter.pm
# once (7µs+9µs) by main::BEGIN@3 at line 3 of flows_to_es.pl
# once (6µs+9µs) by URI::_query::BEGIN@3 at line 3 of URI/_query.pm
# once (7µs+9µs) by main::BEGIN@1 at line 1 of local/lib.pm
# once (6µs+9µs) by Scalar::Util::BEGIN@9 at line 9 of Scalar/Util.pm
# once (6µs+9µs) by List::Util::BEGIN@11 at line 11 of List/Util.pm
# once (6µs+9µs) by base::BEGIN@3 at line 3 of base.pm
# once (6µs+9µs) by Encode::Config::BEGIN@7 at line 7 of Encode/Config.pm
# once (6µs+9µs) by IO::Socket::INET::BEGIN@9 at line 9 of IO/Socket/INET.pm
# once (6µs+9µs) by InfluxDB::LineProtocol::BEGIN@2 at line 2 of /opt/flows/lib/lib/perl5/InfluxDB/LineProtocol.pm
# once (6µs+8µs) by URI::_generic::BEGIN@6 at line 6 of URI/_generic.pm
# once (6µs+8µs) by attributes::BEGIN@9 at line 9 of attributes.pm
# once (6µs+9µs) by URI::_server::BEGIN@5 at line 5 of URI/_server.pm
# once (6µs+8µs) by URI::http::BEGIN@6 at line 6 of URI/http.pm
# once (6µs+9µs) by IO::Socket::UNIX::BEGIN@9 at line 9 of IO/Socket/UNIX.pm
# once (6µs+8µs) by B::Hooks::EndOfScope::XS::BEGIN@4 at line 4 of /opt/flows/lib/lib/perl5/B/Hooks/EndOfScope/XS.pm
# once (6µs+8µs) by Encode::Encoding::BEGIN@4 at line 4 of Encode/Encoding.pm
# once (6µs+9µs) by Socket::BEGIN@3 at line 3 of Socket.pm
# once (6µs+9µs) by URI::_idna::BEGIN@6 at line 6 of URI/_idna.pm
# once (6µs+8µs) by strictures::BEGIN@3 at line 3 of strictures.pm
# once (6µs+9µs) by mro::BEGIN@10 at line 10 of mro.pm
# once (6µs+9µs) by Data::OptList::BEGIN@1 at line 1 of /opt/flows/lib/lib/perl5/Sub/Install.pm
# once (6µs+8µs) by Math::Round::BEGIN@3 at line 3 of Math/Round.pm
# once (6µs+9µs) by B::BEGIN@9 at line 9 of B.pm
# once (6µs+8µs) by Encode::BEGIN@5 at line 5 of Encode.pm
# once (6µs+9µs) by Import::Into::BEGIN@3 at line 3 of Import/Into.pm
# once (6µs+8µs) by Search::Elasticsearch::Util::API::QS::BEGIN@3 at line 3 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Util/API/QS.pm
# once (6µs+8µs) by File::Spec::Unix::BEGIN@3 at line 3 of File/Spec/Unix.pm
# once (5µs+9µs) by Package::Stash::BEGIN@8 at line 8 of Package/Stash.pm
# once (6µs+8µs) by Role::Tiny::BEGIN@6 at line 6 of Role/Tiny.pm
# once (6µs+8µs) by IO::Select::BEGIN@9 at line 9 of IO/Select.pm
# once (6µs+8µs) by Search::Elasticsearch::Util::API::Path::BEGIN@3 at line 3 of /opt/flows/lib/lib/perl5/Search/Elasticsearch/Util/API/Path.pm
# once (5µs+9µs) by constant::BEGIN@3 at line 3 of constant.pm
# once (6µs+8µs) by HTTP::Tiny::Handle::BEGIN@978 at line 978 of /opt/flows/lib/lib/perl5/HTTP/Tiny.pm
# once (6µs+8µs) by Sub::Exporter::Progressive::BEGIN@3 at line 3 of Sub/Exporter/Progressive.pm
# once (6µs+8µs) by Devel::GlobalDestruction::BEGIN@3 at line 3 of Devel/GlobalDestruction.pm
# once (5µs+9µs) by Class::XSAccessor::Heavy::BEGIN@5 at line 5 of Class/XSAccessor/Heavy.pm
# once (6µs+8µs) by URI::BEGIN@3 at line 3 of URI.pm
# once (5µs+9µs) by Try::Tiny::BEGIN@9 at line 9 of Try/Tiny.pm
# once (5µs+8µs) by Search::Elasticsearch::Logger::LogAny::BEGIN@2 at line 2 of /opt/flows/lib/lib/perl5/Log/Any.pm
# once (5µs+8µs) by Log::Any::Manager::BEGIN@2 at line 2 of /opt/flows/lib/lib/perl5/Log/Any/Adapter/Null.pm
# once (5µs+8µs) by JSON::MaybeXS::BEGIN@3 at line 3 of /opt/flows/lib/lib/perl5/JSON/MaybeXS.pm
# once (6µs+8µs) by Config::BEGIN@9 at line 9 of Config.pm
# once (6µs+8µs) by Fcntl::BEGIN@3 at line 3 of Fcntl.pm
# once (6µs+8µs) by Any::URI::Escape::BEGIN@3 at line 3 of /opt/flows/lib/lib/perl5/Any/URI/Escape.pm
# once (6µs+8µs) by B::Hooks::EndOfScope::BEGIN@5 at line 5 of /opt/flows/lib/lib/perl5/B/Hooks/EndOfScope.pm
# once (6µs+8µs) by URI::Escape::BEGIN@2 at line 2 of URI/Escape.pm
# once (6µs+8µs) by URI::_punycode::BEGIN@3 at line 3 of URI/_punycode.pm
# once (5µs+8µs) by File::Spec::BEGIN@3 at line 3 of File/Spec.pm
# once (5µs+8µs) by Log::Any::BEGIN@2.8 at line 2 of /opt/flows/lib/lib/perl5/Log/Any/Adapter/Util.pm
# once (6µs+8µs) by Errno::BEGIN@8 at line 8 of Errno.pm
# once (5µs+8µs) by Sub::Exporter::BEGIN@1 at line 1 of /opt/flows/lib/lib/perl5/Data/OptList.pm
# once (5µs+8µs) by Log::Any::Adapter::Util::BEGIN@2 at line 2 of /opt/flows/lib/lib/perl5/Log/Any/Proxy.pm
# once (5µs+8µs) by IO::Handle::BEGIN@4 at line 4 of IO/Handle.pm
# once (5µs+8µs) by Class::XSAccessor::BEGIN@3 at line 3 of Class/XSAccessor.pm
# once (5µs+8µs) by Time::HiRes::BEGIN@4 at line 4 of Time/HiRes.pm
# once (5µs+8µs) by Class::Method::Modifiers::BEGIN@10 at line 10 of Class/Method/Modifiers.pm
# once (5µs+8µs) by Variable::Magic::BEGIN@5 at line 5 of /opt/flows/lib/lib/perl5/x86_64-linux-gnu-thread-multi/Variable/Magic.pm
# once (5µs+8µs) by POSIX::BEGIN@2 at line 2 of POSIX.pm
# once (5µs+8µs) by Package::Stash::XS::BEGIN@8 at line 8 of Package/Stash/XS.pm
# once (5µs+8µs) by File::Path::BEGIN@4 at line 4 of File/Path.pm
# once (5µs+8µs) by File::Copy::BEGIN@11 at line 11 of File/Copy.pm
# once (5µs+8µs) by Search::Elasticsearch::Util::BEGIN@2 at line 2 of /opt/flows/lib/lib/perl5/Sub/Exporter.pm
# once (5µs+8µs) by Module::Implementation::BEGIN@9 at line 9 of Module/Implementation.pm
# once (5µs+8µs) by File::Basename::BEGIN@50 at line 50 of File/Basename.pm
# once (5µs+8µs) by Log::Any::BEGIN@2 at line 2 of /opt/flows/lib/lib/perl5/Log/Any/Manager.pm
# once (5µs+8µs) by Sub::Name::BEGIN@44 at line 44 of Sub/Name.pm
# once (5µs+8µs) by Params::Util::BEGIN@59 at line 59 of /opt/flows/lib/lib/perl5/x86_64-linux-gnu-thread-multi/Params/Util.pm
# once (5µs+8µs) by Cwd::BEGIN@3 at line 3 of Cwd.pm
# once (5µs+8µs) by IO::BEGIN@7 at line 7 of IO.pm
# once (5µs+8µs) by Carp::BEGIN@4 at line 4 of Carp.pm
# once (5µs+8µs) by namespace::clean::_Util::BEGIN@13 at line 13 of /opt/flows/lib/lib/perl5/namespace/clean/_Util.pm
# once (5µs+8µs) by namespace::clean::BEGIN@4 at line 4 of /opt/flows/lib/lib/perl5/namespace/clean.pm
# once (5µs+8µs) by Sub::Exporter::Progressive::BEGIN@23 at line 23 of Sub/Exporter/Progressive.pm
# once (5µs+7µs) by IO::Socket::BEGIN@14 at line 14 of IO/Socket.pm
# once (5µs+7µs) by vars::BEGIN@8 at line 8 of vars.pm | ||||
43 | 117 | 21µs | shift; | ||
44 | 117 | 624µs | 117 | 988µs | $^H |= bits(@_ ? @_ : @default_bits); # spent 988µs making 117 calls to strict::bits, avg 8µs/call |
45 | } | ||||
46 | |||||
47 | # spent 515µs (250+265) within strict::unimport which was called 40 times, avg 13µs/call:
# once (6µs+12µs) by B::BEGIN@251 at line 251 of B.pm
# once (6µs+10µs) by Carp::BEGIN@433 at line 433 of Carp.pm
# once (10µs+7µs) by Sub::Quote::BEGIN@120 at line 120 of Sub/Quote.pm
# once (6µs+9µs) by POSIX::BEGIN@204 at line 204 of POSIX.pm
# once (8µs+7µs) by File::Spec::Unix::BEGIN@65 at line 65 of File/Spec/Unix.pm
# once (7µs+7µs) by Class::XSAccessor::Heavy::BEGIN@27 at line 27 of Class/XSAccessor/Heavy.pm
# once (7µs+7µs) by Module::Implementation::BEGIN@123 at line 123 of Module/Implementation.pm
# once (7µs+7µs) by Cwd::BEGIN@647 at line 647 of Cwd.pm
# once (7µs+7µs) by HTTP::Tiny::BEGIN@205 at line 205 of /opt/flows/lib/lib/perl5/HTTP/Tiny.pm
# once (6µs+7µs) by IO::Handle::BEGIN@370 at line 370 of IO/Handle.pm
# once (7µs+7µs) by Role::Tiny::BEGIN@276 at line 276 of Role/Tiny.pm
# once (7µs+7µs) by URI::BEGIN@128 at line 128 of URI.pm
# once (6µs+7µs) by File::Path::BEGIN@329 at line 329 of File/Path.pm
# once (6µs+6µs) by Log::Any::BEGIN@63 at line 63 of /opt/flows/lib/lib/perl5/Log/Any.pm
# once (6µs+7µs) by Class::Method::Modifiers::BEGIN@58 at line 58 of Class/Method/Modifiers.pm
# once (6µs+7µs) by Class::Method::Modifiers::BEGIN@200 at line 200 of Class/Method/Modifiers.pm
# once (6µs+7µs) by InfluxDB::LineProtocol::BEGIN@37 at line 37 of /opt/flows/lib/lib/perl5/InfluxDB/LineProtocol.pm
# once (6µs+7µs) by Moo::BEGIN@75 at line 75 of Moo.pm
# once (6µs+6µs) by Socket::BEGIN@240 at line 240 of Socket.pm
# once (6µs+6µs) by Sub::Install::BEGIN@170 at line 170 of /opt/flows/lib/lib/perl5/Sub/Install.pm
# once (6µs+6µs) by Moo::_Utils::BEGIN@105 at line 105 of Moo/_Utils.pm
# once (6µs+7µs) by Log::Any::Adapter::Null::BEGIN@18 at line 18 of /opt/flows/lib/lib/perl5/Log/Any/Adapter/Null.pm
# once (6µs+6µs) by constant::BEGIN@28 at line 28 of constant.pm
# once (6µs+6µs) by constant::BEGIN@116 at line 116 of constant.pm
# once (6µs+6µs) by Log::Any::Proxy::BEGIN@43 at line 43 of /opt/flows/lib/lib/perl5/Log/Any/Proxy.pm
# once (6µs+6µs) by Time::HiRes::BEGIN@43 at line 43 of Time/HiRes.pm
# once (6µs+6µs) by Config::BEGIN@47 at line 47 of Config.pm
# once (6µs+6µs) by Log::Any::Adapter::Util::BEGIN@167 at line 167 of /opt/flows/lib/lib/perl5/Log/Any/Adapter/Util.pm
# once (6µs+6µs) by Log::Any::Adapter::Base::BEGIN@24 at line 24 of /opt/flows/lib/lib/perl5/Log/Any/Adapter/Base.pm
# once (6µs+6µs) by Log::Any::Proxy::BEGIN@57 at line 57 of /opt/flows/lib/lib/perl5/Log/Any/Proxy.pm
# once (6µs+6µs) by Any::URI::Escape::BEGIN@33 at line 33 of /opt/flows/lib/lib/perl5/Any/URI/Escape.pm
# once (6µs+6µs) by HTTP::Tiny::BEGIN@74 at line 74 of /opt/flows/lib/lib/perl5/HTTP/Tiny.pm
# once (6µs+6µs) by Sub::Exporter::Progressive::BEGIN@18 at line 18 of Sub/Exporter/Progressive.pm
# once (6µs+6µs) by Carp::BEGIN@67 at line 67 of Carp.pm
# once (6µs+6µs) by Class::Method::Modifiers::BEGIN@149 at line 149 of Class/Method/Modifiers.pm
# once (6µs+6µs) by constant::BEGIN@54 at line 54 of constant.pm
# once (6µs+6µs) by Carp::BEGIN@448 at line 448 of Carp.pm
# once (5µs+6µs) by Carp::BEGIN@8 at line 8 of Carp.pm
# once (5µs+6µs) by Carp::BEGIN@18 at line 18 of Carp.pm
# once (5µs+5µs) by Exporter::Heavy::BEGIN@4 at line 4 of Exporter/Heavy.pm | ||||
48 | 40 | 8µs | shift; | ||
49 | 40 | 240µs | 40 | 265µs | $^H &= ~ bits(@_ ? @_ : @default_bits); # spent 265µs making 40 calls to strict::bits, avg 7µs/call |
50 | } | ||||
51 | |||||
52 | 1 | 10µs | 1; | ||
53 | __END__ | ||||
# spent 6µs within strict::CORE:match which was called:
# once (6µs+0s) by main::BEGIN@3 at line 6 | |||||
# spent 17µs within strict::CORE:regcomp which was called:
# once (17µs+0s) by main::BEGIN@3 at line 6 |