← Index
NYTProf Performance Profile   « line view »
For /usr/local/bin/sa-learn
  Run on Tue Nov 7 05:38:10 2017
Reported on Tue Nov 7 06:15:59 2017

Filename/usr/local/lib/perl5/5.24/vars.pm
StatementsExecuted 1840 statements in 24.3ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1151159717.2ms22.1msvars::::importvars::import
1029314.94ms4.94msvars::::CORE:matchvars::CORE:match (opcode)
111521µs1.25msvars::::BEGIN@7vars::BEGIN@7
11161µs61µsvars::::BEGIN@3vars::BEGIN@3
11117µs92µsvars::::BEGIN@8vars::BEGIN@8
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
32140µs161µs
# spent 61µs within vars::BEGIN@3 which was called: # once (61µs+0s) by Config::BEGIN@11 at line 3
use 5.006;
# spent 61µs making 1 call to vars::BEGIN@3
4
512µsour $VERSION = '1.03';
6
72554µs21.97ms
# spent 1.25ms (521µs+726µs) within vars::BEGIN@7 which was called: # once (521µs+726µs) by Config::BEGIN@11 at line 7
use warnings::register;
# spent 1.25ms making 1 call to vars::BEGIN@7 # spent 726µs making 1 call to warnings::register::import
82750µs2167µs
# spent 92µs (17+75) within vars::BEGIN@8 which was called: # once (17µs+75µs) by Config::BEGIN@11 at line 8
use strict qw(vars subs);
# spent 92µs making 1 call to vars::BEGIN@8 # spent 75µs making 1 call to strict::import
9
10
# spent 22.1ms (17.2+4.94) within vars::import which was called 115 times, avg 192µs/call: # once (1.26ms+274µs) by Mail::SpamAssassin::Conf::BEGIN@94 at line 109 of Mail/SpamAssassin/Conf.pm # once (660µs+216µs) by main::BEGIN@28 at line 33 of /usr/local/bin/sa-learn # once (642µs+161µs) by Mail::SpamAssassin::BayesStore::DBM::BEGIN@43 at line 50 of Mail/SpamAssassin/BayesStore/DBM.pm # once (604µs+153µs) by Pod::Escapes::BEGIN@6 at line 16 of Pod/Escapes.pm # once (480µs+145µs) by Mail::SpamAssassin::BEGIN@90 at line 95 of Mail/SpamAssassin.pm # once (428µs+115µs) by Getopt::Long::BEGIN@45 at line 45 of Getopt/Long.pm # once (344µs+116µs) by NetAddr::IP::Lite::BEGIN@33 at line 33 of NetAddr/IP/Lite.pm # once (350µs+82µs) by Pod::Simple::BEGIN@13 at line 18 of Pod/Simple.pm # once (322µs+71µs) by version::BEGIN@11 at line 11 of version.pm # once (278µs+110µs) by Net::SSLeay::BEGIN@18 at line 18 of Net/SSLeay.pm # once (267µs+118µs) by NetAddr::IP::BEGIN@25 at line 32 of NetAddr/IP.pm # once (285µs+87µs) by Socket6::BEGIN@39 at line 39 of Socket6.pm # once (278µs+92µs) by Getopt::Long::BEGIN@51 at line 51 of Getopt/Long.pm # once (284µs+44µs) by Mail::SpamAssassin::Constants::BEGIN@33 at line 35 of Mail/SpamAssassin/Constants.pm # once (234µs+86µs) by NetAddr::IP::InetBase::BEGIN@8 at line 8 of NetAddr/IP/InetBase.pm # once (216µs+94µs) by Digest::SHA::BEGIN@7 at line 7 of Digest/SHA.pm # once (234µs+72µs) by Getopt::Long::BEGIN@48 at line 49 of Getopt/Long.pm # once (231µs+62µs) by NetAddr::IP::Util::BEGIN@8 at line 8 of NetAddr/IP/Util.pm # once (216µs+48µs) by Getopt::Long::BEGIN@46 at line 46 of Getopt/Long.pm # once (201µs+63µs) by Mail::SpamAssassin::Plugin::Bayes::BEGIN@68 at line 73 of Mail/SpamAssassin/Plugin/Bayes.pm # once (207µs+52µs) by Cwd::BEGIN@4 at line 4 of Cwd.pm # once (202µs+57µs) by File::Path::BEGIN@20 at line 20 of File/Path.pm # once (195µs+58µs) by Pod::Text::BEGIN@30 at line 30 of Pod/Text.pm # once (195µs+58µs) by Mail::SpamAssassin::ArchiveIterator::BEGIN@36 at line 41 of Mail/SpamAssassin/ArchiveIterator.pm # once (194µs+56µs) by HTML::Entities::BEGIN@139 at line 139 of HTML/Entities.pm # once (193µs+51µs) by MIME::Base64::BEGIN@4 at line 4 of MIME/Base64.pm # once (198µs+44µs) by Mail::SpamAssassin::NetSet::BEGIN@31 at line 33 of Mail/SpamAssassin/NetSet.pm # once (190µs+49µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@38 at line 40 of Mail/SpamAssassin/Dns.pm # once (181µs+51µs) by Razor2::Syslog::BEGIN@3 at line 3 of Razor2/Syslog.pm # once (177µs+53µs) by version::regex::BEGIN@5 at line 5 of version/regex.pm # once (168µs+59µs) by Time::Local::BEGIN@8 at line 8 of Time/Local.pm # once (174µs+51µs) by Mail::SpamAssassin::Util::BEGIN@55 at line 58 of Mail/SpamAssassin/Util.pm # once (166µs+53µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@66 at line 68 of Mail/SpamAssassin/PerMsgStatus.pm # once (176µs+42µs) by Getopt::Long::BEGIN@26 at line 26 of Getopt/Long.pm # once (167µs+49µs) by Pod::Usage::BEGIN@14 at line 14 of Pod/Usage.pm # once (166µs+50µs) by Razor2::Preproc::deHTMLxs::BEGIN@4 at line 4 of Razor2/Preproc/deHTMLxs.pm # once (164µs+51µs) by MIME::QuotedPrint::BEGIN@4 at line 4 of MIME/QuotedPrint.pm # once (165µs+49µs) by Net::Patricia::BEGIN@33 at line 33 of Net/Patricia.pm # once (152µs+53µs) by Mail::SpamAssassin::Plugin::FreeMail::BEGIN@114 at line 114 of Mail/SpamAssassin/Plugin/FreeMail.pm # once (162µs+41µs) by Mail::SpamAssassin::Logger::BEGIN@45 at line 45 of Mail/SpamAssassin/Logger.pm # once (159µs+44µs) by Term::ReadKey::BEGIN@290 at line 290 of Term/ReadKey.pm # once (154µs+40µs) by Digest::SHA1::BEGIN@4 at line 4 of Digest/SHA1.pm # once (149µs+43µs) by Mail::SpamAssassin::Plugin::AskDNS::BEGIN@195 at line 195 of Mail/SpamAssassin/Plugin/AskDNS.pm # once (131µs+57µs) by Term::ReadKey::BEGIN@317 at line 317 of Term/ReadKey.pm # once (147µs+40µs) by IO::Socket::SSL::BEGIN@282 at line 282 of IO/Socket/SSL.pm # once (152µs+35µs) by Config::BEGIN@11 at line 11 of Config.pm # once (140µs+39µs) by Razor2::String::BEGIN@12 at line 12 of Razor2/String.pm # once (140µs+30µs) by Mail::SpamAssassin::Plugin::MIMEHeader::BEGIN@70 at line 70 of Mail/SpamAssassin/Plugin/MIMEHeader.pm # once (114µs+42µs) by Net::Patricia::AF_INET::BEGIN@150 at line 150 of Net/Patricia.pm # once (114µs+35µs) by NetAddr::IP::InetBase::BEGIN@125 at line 125 of NetAddr/IP/InetBase.pm # once (105µs+39µs) by File::Spec::BEGIN@4 at line 4 of File/Spec.pm # once (104µs+35µs) by IO::Select::BEGIN@11 at line 11 of IO/Select.pm # once (98µs+34µs) by Net::Patricia::AF_INET6::BEGIN@237 at line 237 of Net/Patricia.pm # once (98µs+33µs) by Razor2::Client::Agent::BEGIN@26 at line 26 of Razor2/Client/Agent.pm # once (94µs+35µs) by Mail::SpamAssassin::Plugin::BEGIN@105 at line 107 of Mail/SpamAssassin/Plugin.pm # once (88µs+39µs) by Mail::SpamAssassin::Plugin::Check::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/Check.pm # once (111µs+16µs) by HTML::Entities::BEGIN@140 at line 140 of HTML/Entities.pm # once (98µs+29µs) by HTML::Parser::BEGIN@4 at line 4 of HTML/Parser.pm # once (92µs+31µs) by Mail::SpamAssassin::PluginHandler::BEGIN@37 at line 39 of Mail/SpamAssassin/PluginHandler.pm # once (70µs+51µs) by Mail::SpamAssassin::Plugin::ReplaceTags::BEGIN@61 at line 61 of Mail/SpamAssassin/Plugin/ReplaceTags.pm # once (95µs+17µs) by Razor2::Client::Core::BEGIN@20 at line 20 of Razor2/Client/Core.pm # once (82µs+28µs) by Razor2::Client::Version::BEGIN@13 at line 13 of Razor2/Client/Version.pm # once (83µs+18µs) by Mail::SpamAssassin::Plugin::WhiteListSubject::BEGIN@52 at line 52 of Mail/SpamAssassin/Plugin/WhiteListSubject.pm # once (80µs+17µs) by Getopt::Long::BEGIN@22 at line 22 of Getopt/Long.pm # once (81µs+16µs) by Mail::SpamAssassin::PerMsgStatus::BEGIN@80 at line 80 of Mail/SpamAssassin/PerMsgStatus.pm # once (65µs+30µs) by base::BEGIN@5 at line 5 of base.pm # once (76µs+19µs) by Mail::SpamAssassin::Conf::Parser::BEGIN@148 at line 150 of Mail/SpamAssassin/Conf/Parser.pm # once (66µs+28µs) by Getopt::Long::BEGIN@19 at line 19 of Getopt/Long.pm # once (74µs+20µs) by Mail::SpamAssassin::DnsResolver::BEGIN@56 at line 56 of Mail/SpamAssassin/DnsResolver.pm # once (68µs+22µs) by File::Spec::Unix::BEGIN@4 at line 4 of File/Spec/Unix.pm # once (65µs+25µs) by Mail::SpamAssassin::Conf::LDAP::BEGIN@51 at line 53 of Mail/SpamAssassin/Conf/LDAP.pm # once (65µs+24µs) by Mail::SpamAssassin::Plugin::URIDetail::BEGIN@78 at line 78 of Mail/SpamAssassin/Plugin/URIDetail.pm # once (62µs+25µs) by Mail::SpamAssassin::Locales::BEGIN@25 at line 27 of Mail/SpamAssassin/Locales.pm # once (60µs+26µs) by Pod::Simple::LinkSection::BEGIN@10 at line 10 of Pod/Simple/LinkSection.pm # once (71µs+14µs) by Razor2::Client::Config::BEGIN@14 at line 14 of Razor2/Client/Config.pm # once (74µs+10µs) by Mail::SpamAssassin::Plugin::BodyEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/BodyEval.pm # once (73µs+10µs) by Mail::SpamAssassin::Plugin::HeaderEval::BEGIN@31 at line 31 of Mail/SpamAssassin/Plugin/HeaderEval.pm # once (63µs+20µs) by Mail::SpamAssassin::Conf::SQL::BEGIN@51 at line 53 of Mail/SpamAssassin/Conf/SQL.pm # once (62µs+21µs) by Mail::SpamAssassin::Plugin::DKIM::BEGIN@131 at line 131 of Mail/SpamAssassin/Plugin/DKIM.pm # once (63µs+20µs) by NetAddr::IP::Util_IS::BEGIN@8 at line 8 of NetAddr/IP/Util_IS.pm # once (59µs+22µs) by Mail::SpamAssassin::Constants::BEGIN@30 at line 30 of Mail/SpamAssassin/Constants.pm # once (68µs+12µs) by Mail::SpamAssassin::Plugin::DNSEval::BEGIN@37 at line 37 of Mail/SpamAssassin/Plugin/DNSEval.pm # once (62µs+18µs) by Mail::SpamAssassin::Plugin::TxRep::BEGIN@213 at line 213 of Mail/SpamAssassin/Plugin/TxRep.pm # once (61µs+19µs) by Term::ReadKey::BEGIN@283 at line 283 of Term/ReadKey.pm # once (64µs+16µs) by Net::CIDR::Lite::BEGIN@4 at line 4 of Net/CIDR/Lite.pm # once (56µs+23µs) by Mail::SpamAssassin::Locker::UnixNFSSafe::BEGIN@33 at line 35 of Mail/SpamAssassin/Locker/UnixNFSSafe.pm # once (60µs+19µs) by Mail::SpamAssassin::Plugin::AutoLearnThreshold::BEGIN@61 at line 61 of Mail/SpamAssassin/Plugin/AutoLearnThreshold.pm # once (63µs+16µs) by Mail::SpamAssassin::Logger::Stderr::BEGIN@40 at line 40 of Mail/SpamAssassin/Logger/Stderr.pm # once (58µs+20µs) by Mail::SpamAssassin::Timeout::BEGIN@64 at line 66 of Mail/SpamAssassin/Timeout.pm # once (62µs+16µs) by Mail::SpamAssassin::PersistentAddrList::BEGIN@54 at line 56 of Mail/SpamAssassin/PersistentAddrList.pm # once (60µs+15µs) by Mail::SpamAssassin::Plugin::ImageInfo::BEGIN@90 at line 90 of Mail/SpamAssassin/Plugin/ImageInfo.pm # once (56µs+19µs) by Mail::SpamAssassin::PerMsgLearner::BEGIN@59 at line 61 of Mail/SpamAssassin/PerMsgLearner.pm # once (62µs+13µs) by Mail::SpamAssassin::Plugin::SpamCop::BEGIN@55 at line 55 of Mail/SpamAssassin/Plugin/SpamCop.pm # once (61µs+14µs) by Mail::SpamAssassin::AsyncLoop::BEGIN@50 at line 50 of Mail/SpamAssassin/AsyncLoop.pm # once (59µs+15µs) by Mail::SpamAssassin::Locker::BEGIN@29 at line 31 of Mail/SpamAssassin/Locker.pm # once (51µs+23µs) by Mail::SpamAssassin::Plugin::URIEval::BEGIN@28 at line 28 of Mail/SpamAssassin/Plugin/URIEval.pm # once (53µs+21µs) by Mail::SpamAssassin::Plugin::WLBLEval::BEGIN@28 at line 28 of Mail/SpamAssassin/Plugin/WLBLEval.pm # once (59µs+13µs) by Mail::SpamAssassin::Plugin::HTMLEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/HTMLEval.pm # once (59µs+12µs) by Mail::SpamAssassin::Message::BEGIN@60 at line 60 of Mail/SpamAssassin/Message.pm # once (55µs+17µs) by Mail::SpamAssassin::Plugin::SPF::BEGIN@44 at line 44 of Mail/SpamAssassin/Plugin/SPF.pm # once (57µs+14µs) by Config::BEGIN@7 at line 7 of Config_heavy.pl # once (58µs+12µs) by Pod::Simple::BlackBox::BEGIN@24 at line 24 of Pod/Simple/BlackBox.pm # once (52µs+19µs) by Mail::SpamAssassin::RegistryBoundaries::BEGIN@34 at line 34 of Mail/SpamAssassin/RegistryBoundaries.pm # once (54µs+16µs) by Mail::SpamAssassin::Plugin::Hashcash::BEGIN@105 at line 105 of Mail/SpamAssassin/Plugin/Hashcash.pm # once (49µs+20µs) by Digest::base::BEGIN@4 at line 4 of Digest/base.pm # once (54µs+15µs) by Pod::Simple::LinkSection::BEGIN@5 at line 5 of Pod/Simple/LinkSection.pm # once (55µs+14µs) by Mail::SpamAssassin::Plugin::MIMEEval::BEGIN@31 at line 31 of Mail/SpamAssassin/Plugin/MIMEEval.pm # once (57µs+11µs) by Mail::SpamAssassin::Plugin::RelayEval::BEGIN@29 at line 29 of Mail/SpamAssassin/Plugin/RelayEval.pm # once (54µs+13µs) by Mail::SpamAssassin::Plugin::HTTPSMismatch::BEGIN@27 at line 27 of Mail/SpamAssassin/Plugin/HTTPSMismatch.pm # once (54µs+12µs) by Mail::SpamAssassin::Plugin::Razor2::BEGIN@51 at line 51 of Mail/SpamAssassin/Plugin/Razor2.pm # once (54µs+11µs) by Mail::SpamAssassin::Plugin::URIDNSBL::BEGIN@304 at line 304 of Mail/SpamAssassin/Plugin/URIDNSBL.pm # once (45µs+17µs) by Sys::Syslog::BEGIN@87 at line 87 of Sys/Syslog.pm # once (47µs+15µs) by Sys::Syslog::BEGIN@77 at line 77 of Sys/Syslog.pm # once (51µs+8µs) by Mail::SpamAssassin::Timeout::BEGIN@95 at line 95 of Mail/SpamAssassin/Timeout.pm # once (42µs+9µs) by Mail::SpamAssassin::Timeout::BEGIN@93 at line 93 of Mail/SpamAssassin/Timeout.pm
sub import {
11115370µs my $callpack = caller;
12115614µs my (undef, @imports) = @_;
13115222µs my ($sym, $ch);
141151.95ms foreach (@imports) {
153437.74ms3433.18ms if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) {
# spent 3.18ms making 343 calls to vars::CORE:match, avg 9µs/call
163433.81ms343905µs if ($sym =~ /\W/) {
# spent 905µ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 }
283434.07ms343856µs $sym = "${callpack}::$sym" unless $sym =~ /::/;
# spent 856µs making 343 calls to vars::CORE:match, avg 2µs/call
29 *$sym =
30 ( $ch eq "\$" ? \$$sym
31 : $ch eq "\@" ? \@$sym
32 : $ch eq "\%" ? \%$sym
33 : $ch eq "\*" ? \*$sym
34 : $ch eq "\&" ? \&$sym
353434.07ms : 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.94ms within vars::CORE:match which was called 1029 times, avg 5µs/call: # 343 times (3.18ms+0s) by vars::import at line 15, avg 9µs/call # 343 times (905µs+0s) by vars::import at line 16, avg 3µs/call # 343 times (856µs+0s) by vars::import at line 28, avg 2µs/call
sub vars::CORE:match; # opcode