← Index
NYTProf Performance Profile   « line view »
For /usr/local/bin/sa-learn
  Run on Sun Nov 5 02:36:06 2017
Reported on Sun Nov 5 02:56:17 2017

Filename/usr/local/lib/perl5/5.24/vars.pm
StatementsExecuted 1840 statements in 23.3ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1151159716.3ms21.1msvars::::importvars::import
1029314.78ms4.78msvars::::CORE:matchvars::CORE:match (opcode)
111503µs1.20msvars::::BEGIN@7vars::BEGIN@7
11151µs112µsvars::::BEGIN@8vars::BEGIN@8
11150µs50µsvars::::BEGIN@3vars::BEGIN@3
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package vars;
2
32135µs150µs
# spent 50µs within vars::BEGIN@3 which was called: # once (50µs+0s) by Config::BEGIN@11 at line 3
use 5.006;
# spent 50µs making 1 call to vars::BEGIN@3
4
513µsour $VERSION = '1.03';
6
72539µs21.89ms
# spent 1.20ms (503µs+694µs) within vars::BEGIN@7 which was called: # once (503µs+694µs) by Config::BEGIN@11 at line 7
use warnings::register;
# spent 1.20ms making 1 call to vars::BEGIN@7 # spent 694µs making 1 call to warnings::register::import
82729µs2172µs
# spent 112µs (51+61) within vars::BEGIN@8 which was called: # once (51µs+61µs) by Config::BEGIN@11 at line 8
use strict qw(vars subs);
# spent 112µs making 1 call to vars::BEGIN@8 # spent 60µs making 1 call to strict::import
9
10
# spent 21.1ms (16.3+4.78) within vars::import which was called 115 times, avg 183µs/call: # once (1.19ms+316µs) by Mail::SpamAssassin::Conf::BEGIN@94 at line 109 of Mail/SpamAssassin/Conf.pm # once (525µs+168µs) by Pod::Escapes::BEGIN@6 at line 16 of Pod/Escapes.pm # once (511µs+146µs) by Mail::SpamAssassin::BEGIN@90 at line 95 of Mail/SpamAssassin.pm # once (436µs+128µs) by main::BEGIN@28 at line 33 of /usr/local/bin/sa-learn # once (404µs+116µs) by Getopt::Long::BEGIN@45 at line 45 of Getopt/Long.pm # once (403µs+116µs) by Mail::SpamAssassin::BayesStore::DBM::BEGIN@43 at line 50 of Mail/SpamAssassin/BayesStore/DBM.pm # once (316µs+133µs) by NetAddr::IP::Lite::BEGIN@33 at line 33 of NetAddr/IP/Lite.pm # once (328µs+91µs) by version::BEGIN@11 at line 11 of version.pm # once (281µs+111µs) by NetAddr::IP::BEGIN@25 at line 32 of NetAddr/IP.pm # once (307µs+80µs) by Pod::Simple::BEGIN@13 at line 18 of Pod/Simple.pm # once (292µs+88µs) by Getopt::Long::BEGIN@48 at line 49 of Getopt/Long.pm # once (275µs+101µs) by Net::SSLeay::BEGIN@18 at line 18 of Net/SSLeay.pm # once (246µs+91µs) by NetAddr::IP::InetBase::BEGIN@8 at line 8 of NetAddr/IP/InetBase.pm # once (263µs+66µs) by Getopt::Long::BEGIN@51 at line 51 of Getopt/Long.pm # once (263µs+62µs) by Socket6::BEGIN@39 at line 39 of Socket6.pm # once (241µs+51µs) by NetAddr::IP::Util::BEGIN@8 at line 8 of NetAddr/IP/Util.pm # once (240µs+48µs) by Mail::SpamAssassin::Constants::BEGIN@33 at line 35 of Mail/SpamAssassin/Constants.pm # once (211µs+62µs) by HTML::Entities::BEGIN@139 at line 139 of HTML/Entities.pm # once (197µs+63µs) by Cwd::BEGIN@4 at line 4 of Cwd.pm # once (198µs+60µs) by Razor2::Syslog::BEGIN@3 at line 3 of Razor2/Syslog.pm # once (191µs+66µs) by Getopt::Long::BEGIN@46 at line 46 of Getopt/Long.pm # once (202µs+55µs) by Mail::SpamAssassin::Plugin::Bayes::BEGIN@68 at line 73 of Mail/SpamAssassin/Plugin/Bayes.pm # once (200µs+51µs) by Razor2::Preproc::deHTMLxs::BEGIN@4 at line 4 of Razor2/Preproc/deHTMLxs.pm # once (210µs+40µs) by Pod::Text::BEGIN@30 at line 30 of Pod/Text.pm # once (179µs+68µs) by Digest::SHA::BEGIN@7 at line 7 of Digest/SHA.pm # once (176µs+68µs) by File::Path::BEGIN@20 at line 20 of File/Path.pm # once (186µs+55µs) by MIME::Base64::BEGIN@4 at line 4 of MIME/Base64.pm # once (197µs+42µs) by Mail::SpamAssassin::NetSet::BEGIN@31 at line 33 of Mail/SpamAssassin/NetSet.pm # once (186µs+48µs) by Mail::SpamAssassin::ArchiveIterator::BEGIN@36 at line 41 of Mail/SpamAssassin/ArchiveIterator.pm # once (173µs+56µs) by Mail::SpamAssassin::Util::BEGIN@55 at line 58 of Mail/SpamAssassin/Util.pm # once (170µs+56µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@38 at line 40 of Mail/SpamAssassin/Dns.pm # once (151µs+67µs) by Mail::SpamAssassin::Plugin::FreeMail::BEGIN@114 at line 114 of Mail/SpamAssassin/Plugin/FreeMail.pm # once (172µs+46µs) by Time::Local::BEGIN@8 at line 8 of Time/Local.pm # once (152µs+61µs) by Term::ReadKey::BEGIN@317 at line 317 of Term/ReadKey.pm # once (159µs+54µs) by version::regex::BEGIN@5 at line 5 of version/regex.pm # once (157µs+54µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@66 at line 68 of Mail/SpamAssassin/PerMsgStatus.pm # once (164µs+41µs) by Net::Patricia::BEGIN@33 at line 33 of Net/Patricia.pm # once (145µs+57µs) by Razor2::String::BEGIN@12 at line 12 of Razor2/String.pm # once (162µs+41µs) by MIME::QuotedPrint::BEGIN@4 at line 4 of MIME/QuotedPrint.pm # once (160µs+37µs) by IO::Socket::SSL::BEGIN@282 at line 282 of IO/Socket/SSL.pm # once (147µs+48µs) by Pod::Usage::BEGIN@14 at line 14 of Pod/Usage.pm # once (137µs+55µs) by Mail::SpamAssassin::Plugin::AskDNS::BEGIN@195 at line 195 of Mail/SpamAssassin/Plugin/AskDNS.pm # once (150µs+29µs) by Getopt::Long::BEGIN@26 at line 26 of Getopt/Long.pm # once (132µs+45µs) by Digest::SHA1::BEGIN@4 at line 4 of Digest/SHA1.pm # once (122µs+38µs) by Mail::SpamAssassin::Logger::BEGIN@45 at line 45 of Mail/SpamAssassin/Logger.pm # once (114µs+42µs) by Term::ReadKey::BEGIN@290 at line 290 of Term/ReadKey.pm # once (97µs+57µs) by Net::Patricia::AF_INET::BEGIN@150 at line 150 of Net/Patricia.pm # once (116µs+29µs) by Config::BEGIN@11 at line 11 of Config.pm # once (107µs+38µs) by Mail::SpamAssassin::Plugin::MIMEHeader::BEGIN@70 at line 70 of Mail/SpamAssassin/Plugin/MIMEHeader.pm # once (110µs+34µs) by HTML::Parser::BEGIN@4 at line 4 of HTML/Parser.pm # once (115µs+25µs) by NetAddr::IP::InetBase::BEGIN@125 at line 125 of NetAddr/IP/InetBase.pm # once (109µs+30µs) by Mail::SpamAssassin::PluginHandler::BEGIN@37 at line 39 of Mail/SpamAssassin/PluginHandler.pm # once (106µs+31µs) by Net::Patricia::AF_INET6::BEGIN@237 at line 237 of Net/Patricia.pm # once (102µs+31µs) by Razor2::Client::Version::BEGIN@13 at line 13 of Razor2/Client/Version.pm # once (93µs+38µs) by File::Spec::BEGIN@4 at line 4 of File/Spec.pm # once (94µs+36µs) by Mail::SpamAssassin::Plugin::BEGIN@105 at line 107 of Mail/SpamAssassin/Plugin.pm # once (111µs+18µs) by Razor2::Client::Core::BEGIN@20 at line 20 of Razor2/Client/Core.pm # once (99µs+25µs) by Mail::SpamAssassin::Plugin::Check::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/Check.pm # once (80µs+36µs) by IO::Select::BEGIN@11 at line 11 of IO/Select.pm # once (98µs+16µs) by HTML::Entities::BEGIN@140 at line 140 of HTML/Entities.pm # once (87µs+26µs) by Razor2::Client::Agent::BEGIN@26 at line 26 of Razor2/Client/Agent.pm # once (77µs+21µs) by Mail::SpamAssassin::Plugin::URIDetail::BEGIN@78 at line 78 of Mail/SpamAssassin/Plugin/URIDetail.pm # once (72µs+25µs) by Mail::SpamAssassin::Constants::BEGIN@30 at line 30 of Mail/SpamAssassin/Constants.pm # once (75µs+21µs) by Mail::SpamAssassin::Plugin::WhiteListSubject::BEGIN@52 at line 52 of Mail/SpamAssassin/Plugin/WhiteListSubject.pm # once (72µs+21µs) by base::BEGIN@5 at line 5 of base.pm # once (80µs+12µs) by Mail::SpamAssassin::Plugin::ReplaceTags::BEGIN@61 at line 61 of Mail/SpamAssassin/Plugin/ReplaceTags.pm # once (71µs+20µs) by Term::ReadKey::BEGIN@283 at line 283 of Term/ReadKey.pm # once (69µs+21µs) by Mail::SpamAssassin::Plugin::DKIM::BEGIN@131 at line 131 of Mail/SpamAssassin/Plugin/DKIM.pm # once (69µs+20µs) by Mail::SpamAssassin::Plugin::HeaderEval::BEGIN@31 at line 31 of Mail/SpamAssassin/Plugin/HeaderEval.pm # once (78µs+10µs) by Mail::SpamAssassin::Plugin::DNSEval::BEGIN@37 at line 37 of Mail/SpamAssassin/Plugin/DNSEval.pm # once (60µs+28µs) by Getopt::Long::BEGIN@19 at line 19 of Getopt/Long.pm # once (77µs+10µs) by NetAddr::IP::Util_IS::BEGIN@8 at line 8 of NetAddr/IP/Util_IS.pm # once (64µs+23µs) by Mail::SpamAssassin::Locales::BEGIN@25 at line 27 of Mail/SpamAssassin/Locales.pm # once (64µs+24µs) by Mail::SpamAssassin::Plugin::TxRep::BEGIN@209 at line 209 of Mail/SpamAssassin/Plugin/TxRep.pm # once (62µs+24µs) by Digest::base::BEGIN@4 at line 4 of Digest/base.pm # once (62µs+24µs) by Mail::SpamAssassin::Locker::BEGIN@29 at line 31 of Mail/SpamAssassin/Locker.pm # once (74µs+11µs) by File::Spec::Unix::BEGIN@4 at line 4 of File/Spec/Unix.pm # once (58µs+25µs) by Net::CIDR::Lite::BEGIN@4 at line 4 of Net/CIDR/Lite.pm # once (66µs+15µs) by Mail::SpamAssassin::PersistentAddrList::BEGIN@54 at line 56 of Mail/SpamAssassin/PersistentAddrList.pm # once (60µs+21µs) by Mail::SpamAssassin::Conf::SQL::BEGIN@51 at line 53 of Mail/SpamAssassin/Conf/SQL.pm # once (72µs+9µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@80 at line 80 of Mail/SpamAssassin/PerMsgStatus.pm # once (66µs+14µs) by Mail::SpamAssassin::Plugin::SpamCop::BEGIN@55 at line 55 of Mail/SpamAssassin/Plugin/SpamCop.pm # once (56µs+24µs) by Mail::SpamAssassin::Plugin::URIEval::BEGIN@28 at line 28 of Mail/SpamAssassin/Plugin/URIEval.pm # once (71µs+9µs) by Mail::SpamAssassin::Timeout::BEGIN@95 at line 95 of Mail/SpamAssassin/Timeout.pm # once (64µs+15µs) by Mail::SpamAssassin::Locker::UnixNFSSafe::BEGIN@33 at line 35 of Mail/SpamAssassin/Locker/UnixNFSSafe.pm # once (57µs+22µs) by Pod::Simple::LinkSection::BEGIN@10 at line 10 of Pod/Simple/LinkSection.pm # once (59µs+20µs) by Sys::Syslog::BEGIN@77 at line 77 of Sys/Syslog.pm # once (58µs+20µs) by Pod::Simple::BlackBox::BEGIN@24 at line 24 of Pod/Simple/BlackBox.pm # once (59µs+18µs) by Mail::SpamAssassin::Conf::LDAP::BEGIN@51 at line 53 of Mail/SpamAssassin/Conf/LDAP.pm # once (68µs+9µs) by Mail::SpamAssassin::Timeout::BEGIN@93 at line 93 of Mail/SpamAssassin/Timeout.pm # once (58µs+19µs) by Mail::SpamAssassin::AsyncLoop::BEGIN@50 at line 50 of Mail/SpamAssassin/AsyncLoop.pm # once (56µs+21µs) by Mail::SpamAssassin::PerMsgLearner::BEGIN@59 at line 61 of Mail/SpamAssassin/PerMsgLearner.pm # once (54µs+22µs) by Mail::SpamAssassin::Timeout::BEGIN@64 at line 66 of Mail/SpamAssassin/Timeout.pm # once (61µs+16µs) by Mail::SpamAssassin::Logger::Stderr::BEGIN@40 at line 40 of Mail/SpamAssassin/Logger/Stderr.pm # once (59µs+16µs) by Razor2::Client::Config::BEGIN@14 at line 14 of Razor2/Client/Config.pm # once (60µs+15µs) by Mail::SpamAssassin::Plugin::Razor2::BEGIN@51 at line 51 of Mail/SpamAssassin/Plugin/Razor2.pm # once (50µs+24µs) by Mail::SpamAssassin::RegistryBoundaries::BEGIN@34 at line 34 of Mail/SpamAssassin/RegistryBoundaries.pm # once (62µs+11µs) by Mail::SpamAssassin::Plugin::RelayEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/RelayEval.pm # once (61µs+13µs) by Mail::SpamAssassin::Plugin::ImageInfo::BEGIN@90 at line 90 of Mail/SpamAssassin/Plugin/ImageInfo.pm # once (62µs+12µs) by Mail::SpamAssassin::Plugin::MIMEEval::BEGIN@31 at line 31 of Mail/SpamAssassin/Plugin/MIMEEval.pm # once (56µs+16µs) by Mail::SpamAssassin::Plugin::SPF::BEGIN@44 at line 44 of Mail/SpamAssassin/Plugin/SPF.pm # once (60µs+12µs) by Mail::SpamAssassin::Plugin::AutoLearnThreshold::BEGIN@61 at line 61 of Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm # once (57µs+14µs) by Mail::SpamAssassin::Message::BEGIN@60 at line 60 of Mail/SpamAssassin/Message.pm # once (54µs+16µs) by Mail::SpamAssassin::Plugin::URIDNSBL::BEGIN@304 at line 304 of Mail/SpamAssassin/Plugin/URIDNSBL.pm # once (57µs+13µs) by Mail::SpamAssassin::Plugin::BodyEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/BodyEval.pm # once (59µs+11µs) by Mail::SpamAssassin::Plugin::HTMLEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/HTMLEval.pm # once (56µs+14µs) by Config::BEGIN@7 at line 7 of Config_heavy.pl # once (57µs+12µs) by Mail::SpamAssassin::Plugin::WLBLEval::BEGIN@28 at line 28 of Mail/SpamAssassin/Plugin/WLBLEval.pm # once (56µs+13µs) by Mail::SpamAssassin::DnsResolver::BEGIN@56 at line 56 of Mail/SpamAssassin/DnsResolver.pm # once (51µs+17µs) by Mail::SpamAssassin::Plugin::Hashcash::BEGIN@105 at line 105 of Mail/SpamAssassin/Plugin/Hashcash.pm # once (56µs+12µs) by Mail::SpamAssassin::Conf::Parser::BEGIN@148 at line 150 of Mail/SpamAssassin/Conf/Parser.pm # once (53µs+14µs) by Mail::SpamAssassin::Plugin::HTTPSMismatch::BEGIN@27 at line 27 of Mail/SpamAssassin/Plugin/HTTPSMismatch.pm # once (50µs+14µs) by Pod::Simple::LinkSection::BEGIN@5 at line 5 of Pod/Simple/LinkSection.pm # once (45µs+9µs) by Sys::Syslog::BEGIN@87 at line 87 of Sys/Syslog.pm # once (44µs+9µs) by Getopt::Long::BEGIN@22 at line 22 of Getopt/Long.pm
sub import {
11115353µs my $callpack = caller;
12115605µs my (undef, @imports) = @_;
13115241µs my ($sym, $ch);
141152.05ms foreach (@imports) {
153437.35ms3433.02ms if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) {
# spent 3.02ms making 343 calls to vars::CORE:match, avg 9µs/call
163433.47ms343901µs if ($sym =~ /\W/) {
# spent 901µs making 343 calls to vars::CORE:match, avg 3µs/call
17 # time for a more-detailed check-up
18 if ($sym =~ /^\w+[[{].*[]}]$/) {
19 require Carp;
20 Carp::croak("Can't declare individual elements of hash or array");
21 } elsif (warnings::enabled() and length($sym) == 1 and $sym !~ tr/a-zA-Z//) {
22 warnings::warn("No need to declare built-in vars");
23 } elsif (($^H &= strict::bits('vars'))) {
24 require Carp;
25 Carp::croak("'$_' is not a valid variable name under strict vars");
26 }
27 }
283433.93ms343865µs $sym = "${callpack}::$sym" unless $sym =~ /::/;
# spent 865µs making 343 calls to vars::CORE:match, avg 3µs/call
29 *$sym =
30 ( $ch eq "\$" ? \$$sym
31 : $ch eq "\@" ? \@$sym
32 : $ch eq "\%" ? \%$sym
33 : $ch eq "\*" ? \*$sym
34 : $ch eq "\&" ? \&$sym
353433.92ms : do {
36 require Carp;
37 Carp::croak("'$_' is not a valid variable name");
38 });
39 } else {
40 require Carp;
41 Carp::croak("'$_' is not a valid variable name");
42 }
43 }
44};
45
4618µs1;
47__END__
 
# spent 4.78ms within vars::CORE:match which was called 1029 times, avg 5µs/call: # 343 times (3.02ms+0s) by vars::import at line 15, avg 9µs/call # 343 times (901µs+0s) by vars::import at line 16, avg 3µs/call # 343 times (865µs+0s) by vars::import at line 28, avg 3µs/call
sub vars::CORE:match; # opcode