← 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:16:01 2017

Filename/usr/local/lib/perl5/5.24/version.pm
StatementsExecuted 38 statements in 1.62ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
181613425µs425µsversion::::_VERSIONversion::_VERSION (xsub)
111114µs114µsversion::::importversion::import
11148µs48µsversion::::BEGIN@4version::BEGIN@4
11126µs41µsversion::::BEGIN@5version::BEGIN@5
11126µs78µsversion::::BEGIN@24version::BEGIN@24
11124µs417µsversion::::BEGIN@11version::BEGIN@11
11121µs719µsversion::::BEGIN@6version::BEGIN@6
11116µs16µsversion::::(cmpversion::(cmp (xsub)
11111µs11µsversion::::(boolversion::(bool (xsub)
0000s0sversion::::__ANON__[:50]version::__ANON__[:50]
0000s0sversion::::__ANON__[:56]version::__ANON__[:56]
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1#!perl -w
2package version;
3
42109µs148µs
# spent 48µs within version::BEGIN@4 which was called: # once (48µs+0s) by Net::Patricia::BEGIN@31 at line 4
use 5.006002;
# spent 48µs making 1 call to version::BEGIN@4
5268µs256µs
# spent 41µs (26+15) within version::BEGIN@5 which was called: # once (26µs+15µs) by Net::Patricia::BEGIN@31 at line 5
use strict;
# spent 41µs making 1 call to version::BEGIN@5 # spent 15µs making 1 call to strict::import
62114µs21.42ms
# spent 719µs (21+698) within version::BEGIN@6 which was called: # once (21µs+698µs) by Net::Patricia::BEGIN@31 at line 6
use warnings::register;
# spent 719µs making 1 call to version::BEGIN@6 # spent 698µs making 1 call to warnings::register::import
716µsif ($] >= 5.015) {
817µs120µs warnings::register_categories(qw/version/);
# spent 20µs making 1 call to warnings::register_categories
9}
10
112203µs2810µs
# spent 417µs (24+393) within version::BEGIN@11 which was called: # once (24µs+393µs) by Net::Patricia::BEGIN@31 at line 11
use vars qw(@ISA $VERSION $CLASS $STRICT $LAX *declare *qv);
# spent 417µs making 1 call to version::BEGIN@11 # spent 393µs making 1 call to vars::import
12
1312µs$VERSION = 0.9916;
1412µs$CLASS = 'version';
15
16# avoid using Exporter
171273µsrequire version::regex;
1814µs*version::is_lax = \&version::regex::is_lax;
1912µs*version::is_strict = \&version::regex::is_strict;
2012µs*LAX = \$version::regex::LAX;
2112µs*STRICT = \$version::regex::STRICT;
22
23
# spent 114µs within version::import which was called: # once (114µs+0s) by Net::Patricia::BEGIN@31 at line 31 of Net/Patricia.pm
sub import {
242697µs2130µs
# spent 78µs (26+52) within version::BEGIN@24 which was called: # once (26µs+52µs) by Net::Patricia::BEGIN@31 at line 24
no strict 'refs';
# spent 78µs making 1 call to version::BEGIN@24 # spent 52µs making 1 call to strict::unimport
2512µs my ($class) = shift;
26
27 # Set up any derived class
2812µs unless ($class eq $CLASS) {
29 local $^W;
30 *{$class.'::declare'} = \&{$CLASS.'::declare'};
31 *{$class.'::qv'} = \&{$CLASS.'::qv'};
32 }
33
3412µs my %args;
3514µs if (@_) { # any remaining terms are arguments
36 map { $args{$_} = 1 } @_
37 }
38 else { # no parameters at all on use line
3914µs %args =
40 (
41 qv => 1,
42 'UNIVERSAL::VERSION' => 1,
43 );
44 }
45
4612µs my $callpkg = caller();
47
4812µs if (exists($args{declare})) {
49 *{$callpkg.'::declare'} =
50 sub {return $class->declare(shift) }
51 unless defined(&{$callpkg.'::declare'});
52 }
53
5413µs if (exists($args{qv})) {
5512µs *{$callpkg.'::qv'} =
56 sub {return $class->qv(shift) }
57238µs unless defined(&{$callpkg.'::qv'});
58 }
59
6013µs if (exists($args{'UNIVERSAL::VERSION'})) {
6115µs local $^W;
62 *UNIVERSAL::VERSION
63222µs = \&{$CLASS.'::_VERSION'};
64 }
65
6612µs if (exists($args{'VERSION'})) {
67 *{$callpkg.'::VERSION'} = \&{$CLASS.'::_VERSION'};
68 }
69
7012µs if (exists($args{'is_strict'})) {
71 *{$callpkg.'::is_strict'} = \&{$CLASS.'::is_strict'}
72 unless defined(&{$callpkg.'::is_strict'});
73 }
74
75111µs if (exists($args{'is_lax'})) {
76 *{$callpkg.'::is_lax'} = \&{$CLASS.'::is_lax'}
77 unless defined(&{$callpkg.'::is_lax'});
78 }
79}
80
81
82127µs1;
 
# spent 11µs within version::(bool which was called: # once (11µs+0s) by Errno::BEGIN@10 at line 59 of Config.pm
sub version::(bool; # xsub
# spent 16µs within version::(cmp which was called: # once (16µs+0s) by Errno::BEGIN@10 at line 62 of Config.pm
sub version::(cmp; # xsub
# spent 425µs within version::_VERSION which was called 18 times, avg 24µs/call: # 2 times (42µs+0s) by Mail::SpamAssassin::DnsResolver::load_resolver at line 174 of Mail/SpamAssassin/DnsResolver.pm, avg 21µs/call # 2 times (42µs+0s) by Net::DNS::Resolver::Base::BEGIN@1 or Net::DNS::Resolver::Base::BEGIN@1.1 at line 1 of (eval 16)[Net/DNS/Resolver/Base.pm:29], avg 21µs/call # once (55µs+0s) by Mail::SpamAssassin::Plugin::TxRep::BEGIN@207 at line 207 of Mail/SpamAssassin/Plugin/TxRep.pm # once (34µs+0s) by IO::Socket::IP::BEGIN@19 at line 30 of IO/Socket/IP.pm # once (29µs+0s) by Mail::SpamAssassin::Plugin::AskDNS::new at line 214 of Mail/SpamAssassin/Plugin/AskDNS.pm # once (29µs+0s) by IO::Socket::SSL::BEGIN@308 at line 315 of IO/Socket/SSL.pm # once (26µs+0s) by Mail::SpamAssassin::Plugin::SpamCop::BEGIN@53 at line 31 of Net/SMTP.pm # once (25µs+0s) by Mail::SpamAssassin::BEGIN@85 at line 85 of Mail/SpamAssassin.pm # once (23µs+0s) by IO::Socket::SSL::BEGIN@19 at line 19 of IO/Socket/SSL.pm # once (23µs+0s) by Net::DNS::Resolver::Base::BEGIN@46 at line 23 of Scalar/Util.pm # once (19µs+0s) by URI::Escape::BEGIN@140 at line 140 of URI/Escape.pm # once (18µs+0s) by IO::Socket::BEGIN@13 at line 13 of IO/Socket.pm # once (18µs+0s) by Mail::SpamAssassin::HTML::BEGIN@30 at line 30 of Mail/SpamAssassin/HTML.pm # once (16µs+0s) by Mail::SpamAssassin::NetSet::BEGIN@35 at line 38 of Mail/SpamAssassin/NetSet.pm # once (13µs+0s) by IO::Socket::SSL::BEGIN@308 at line 341 of IO/Socket/SSL.pm # once (12µs+0s) by Mail::SpamAssassin::Plugin::SpamCop::BEGIN@53 at line 42 of Net/SMTP.pm
sub version::_VERSION; # xsub