← Index
NYTProf Performance Profile   « line view »
For svc/members/upsert
  Run on Tue Jan 13 11:50:22 2015
Reported on Tue Jan 13 12:09:46 2015

Filename/usr/share/perl/5.20/vars.pm
StatementsExecuted 2680 statements in 8.00ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
1521521234.63ms5.82msvars::::importvars::import
1111.33ms1.43msvars::::BEGIN@7vars::BEGIN@7
1548311.18ms1.18msvars::::CORE:matchvars::CORE:match (opcode)
11123µs23µsvars::::BEGIN@3vars::BEGIN@3
1118µs22µ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
3278µs123µs
# spent 23µs within vars::BEGIN@3 which was called: # once (23µs+0s) by C4::Context::BEGIN@21 at line 3
use 5.006;
# spent 23µs making 1 call to vars::BEGIN@3
4
51600nsour $VERSION = '1.03';
6
721.35ms21.54ms
# spent 1.43ms (1.33+105µs) within vars::BEGIN@7 which was called: # once (1.33ms+105µs) by C4::Context::BEGIN@21 at line 7
use warnings::register;
# spent 1.43ms making 1 call to vars::BEGIN@7 # spent 105µs making 1 call to warnings::register::import
82410µs235µs
# spent 22µs (8+13) within vars::BEGIN@8 which was called: # once (8µs+13µs) by C4::Context::BEGIN@21 at line 8
use strict qw(vars subs);
# spent 22µs making 1 call to vars::BEGIN@8 # spent 13µs making 1 call to strict::import
9
10
# spent 5.82ms (4.63+1.18) within vars::import which was called 152 times, avg 38µs/call: # once (114µs+28µs) by C4::Auth::BEGIN@37 at line 37 of C4/Auth.pm # once (99µs+26µs) by Template::Config::BEGIN@24 at line 24 of Template/Config.pm # once (100µs+25µs) by YAML::Syck::BEGIN@6 at line 6 of YAML/Syck.pm # once (98µs+26µs) by Set::Infinite::BEGIN@24 at line 24 of Set/Infinite.pm # once (109µs+13µs) by Date::Calc::BEGIN@15 at line 15 of Date/Calc.pm # once (97µs+24µs) by Params::Check::BEGIN@10 at line 10 of Params/Check.pm # once (93µs+23µs) by XML::LibXML::BEGIN@16 at line 16 of XML/LibXML.pm # once (78µs+21µs) by C4::Context::BEGIN@21 at line 21 of C4/Context.pm # once (79µs+18µs) by C4::Auth_with_cas::BEGIN@30 at line 30 of C4/Auth_with_cas.pm # once (72µs+18µs) by Mail::Sendmail::BEGIN@39 at line 39 of Mail/Sendmail.pm # once (59µs+15µs) by Module::Load::Conditional::BEGIN@21 at line 21 of Module/Load/Conditional.pm # once (58µs+15µs) by MIME::Lite::BEGIN@341 at line 341 of MIME/Lite.pm # once (58µs+15µs) by Math::BigInt::BEGIN@28 at line 28 of Math/BigInt.pm # once (58µs+10µs) by Template::Constants::BEGIN@28 at line 28 of Template/Constants.pm # once (52µs+14µs) by Digest::MD5::BEGIN@4 at line 4 of Digest/MD5.pm # once (51µs+15µs) by XML::Simple::BEGIN@49 at line 49 of XML/Simple.pm # once (53µs+12µs) by C4::Languages::BEGIN@26 at line 26 of C4/Languages.pm # once (52µs+13µs) by version::BEGIN@7 at line 7 of version.pm # once (48µs+12µs) by DateTime::Format::Strptime::BEGIN@14 at line 14 of DateTime/Format/Strptime.pm # once (48µs+11µs) by Set::Infinite::Basic::BEGIN@14 at line 14 of Set/Infinite/Basic.pm # once (46µs+13µs) by C4::Debug::BEGIN@26 at line 26 of C4/Debug.pm # once (46µs+12µs) by DateTime::TimeZone::Catalog::BEGIN@12 at line 12 of DateTime/TimeZone/Catalog.pm # once (44µs+14µs) by HTTP::Message::BEGIN@4 at line 4 of HTTP/Message.pm # once (46µs+11µs) by Set::Infinite::Arithmetic::BEGIN@37 at line 37 of Set/Infinite/Arithmetic.pm # once (46µs+11µs) by XML::Parser::Expat::BEGIN@6 at line 6 of XML/Parser/Expat.pm # once (44µs+11µs) by HTTP::Status::BEGIN@6 at line 6 of HTTP/Status.pm # once (46µs+8µs) by HTTP::Date::BEGIN@13 at line 13 of HTTP/Date.pm # once (42µs+11µs) by C4::Branch::BEGIN@24 at line 24 of C4/Branch.pm # once (42µs+10µs) by C4::Members::Attributes::BEGIN@27 at line 27 of C4/Members/Attributes.pm # once (41µs+10µs) by C4::Letters::BEGIN@38 at line 38 of C4/Letters.pm # once (40µs+10µs) by C4::Output::BEGIN@38 at line 38 of C4/Output.pm # once (41µs+8µs) by MARC::Record::BEGIN@28 at line 28 of MARC/Record.pm # once (39µs+10µs) by C4::ClassSortRoutine::BEGIN@27 at line 27 of C4/ClassSortRoutine.pm # once (39µs+9µs) by File::Path::BEGIN@19 at line 19 of File/Path.pm # once (39µs+10µs) by List::MoreUtils::BEGIN@8 at line 8 of List/MoreUtils.pm # once (39µs+10µs) by DBI::Const::GetInfoType::BEGIN@16 at line 16 of DBI/Const/GetInfoType.pm # once (38µs+10µs) by C4::Koha::BEGIN@34 at line 34 of C4/Koha.pm # once (38µs+10µs) by C4::Circulation::BEGIN@61 at line 61 of C4/Circulation.pm # once (38µs+9µs) by C4::ClassSource::BEGIN@27 at line 27 of C4/ClassSource.pm # once (37µs+8µs) by C4::VirtualShelves::BEGIN@32 at line 32 of C4/VirtualShelves.pm # once (36µs+9µs) by XML::LibXML::InputCallback::BEGIN@2178 at line 2178 of XML/LibXML.pm # once (35µs+10µs) by Sys::Hostname::Long::BEGIN@12 at line 12 of Sys/Hostname/Long.pm # once (35µs+10µs) by Params::Util::BEGIN@65 at line 65 of Params/Util.pm # once (33µs+11µs) by Time::Local::BEGIN@8 at line 8 of Time/Local.pm # once (35µs+9µs) by C4::Reserves::BEGIN@44 at line 44 of C4/Reserves.pm # once (36µs+9µs) by C4::Charset::BEGIN@29 at line 29 of C4/Charset.pm # once (35µs+9µs) by C4::Dates::BEGIN@30 at line 30 of C4/Dates.pm # once (34µs+9µs) by Date::Calc::XS::BEGIN@16 at line 16 of Date/Calc/XS.pm # once (34µs+8µs) by Date::Parse::BEGIN@207 at line 207 of Date/Parse.pm # once (34µs+8µs) by File::Temp::BEGIN@36 at line 36 of File/Temp.pm # once (33µs+9µs) by Carp::Clan::BEGIN@17 at line 17 of Carp/Clan.pm # once (34µs+8µs) by C4::SQLHelper::BEGIN@28 at line 28 of C4/SQLHelper.pm # once (33µs+7µs) by Time::Zone::BEGIN@149 at line 148 of Time/Zone.pm # once (30µs+11µs) by HTTP::Headers::BEGIN@6 at line 6 of HTTP/Headers.pm # once (31µs+8µs) by Text::Iconv::BEGIN@6 at line 6 of Text/Iconv.pm # once (29µs+9µs) by C4::NewsChannels::BEGIN@26 at line 26 of C4/NewsChannels.pm # once (29µs+9µs) by Cwd::BEGIN@5 at line 5 of Cwd.pm # once (30µs+8µs) by MIME::Base64::BEGIN@4 at line 4 of MIME/Base64.pm # once (30µs+8µs) by Time::Zone::BEGIN@47 at line 47 of Time/Zone.pm # once (31µs+7µs) by Set::Infinite::Arithmetic::BEGIN@31 at line 31 of Set/Infinite/Arithmetic.pm # once (30µs+8µs) by Readonly::BEGIN@156 at line 156 of Readonly.pm # once (30µs+7µs) by C4::Items::BEGIN@37 at line 37 of C4/Items.pm # once (30µs+7µs) by C4::Budgets::BEGIN@27 at line 27 of C4/Budgets.pm # once (29µs+8µs) by XML::LibXML::BEGIN@38 at line 38 of XML/LibXML.pm # once (27µs+10µs) by Storable::BEGIN@23 at line 23 of Storable.pm # once (30µs+7µs) by C4::Stats::BEGIN@26 at line 26 of C4/Stats.pm # once (28µs+8µs) by version::regex::BEGIN@5 at line 5 of version/regex.pm # once (26µs+9µs) by Template::Constants::BEGIN@27 at line 27 of Template/Constants.pm # once (29µs+7µs) by C4::Accounts::BEGIN@31 at line 31 of C4/Accounts.pm # once (28µs+8µs) by C4::Log::BEGIN@30 at line 30 of C4/Log.pm # once (28µs+7µs) by Params::Validate::BEGIN@12 at line 12 of Params/Validate.pm # once (27µs+8µs) by LWP::UserAgent::BEGIN@4 at line 4 of LWP/UserAgent.pm # once (27µs+8µs) by Config::BEGIN@11 at line 11 of Config.pm # once (28µs+7µs) by Set::Infinite::Basic::BEGIN@13 at line 13 of Set/Infinite/Basic.pm # once (27µs+7µs) by Date::Parse::BEGIN@9 at line 9 of Date/Parse.pm # once (27µs+7µs) by Text::Unaccent::BEGIN@21 at line 21 of Text/Unaccent.pm # once (27µs+6µs) by C4::Overdues::BEGIN@32 at line 32 of C4/Overdues.pm # once (25µs+8µs) by constant::BEGIN@6 at line 6 of constant.pm # once (27µs+7µs) by C4::Biblio::BEGIN@41 at line 41 of C4/Biblio.pm # once (26µs+7µs) by Set::Infinite::Arithmetic::BEGIN@13 at line 13 of Set/Infinite/Arithmetic.pm # once (26µs+7µs) by XML::SAX::BEGIN@6 at line 6 of XML/SAX.pm # once (24µs+9µs) by C4::OAI::Sets::BEGIN@35 at line 35 of C4/OAI/Sets.pm # once (26µs+6µs) by Set::Infinite::_recurrence::BEGIN@12 at line 12 of Set/Infinite/_recurrence.pm # once (26µs+6µs) by Readonly::BEGIN@42 at line 42 of Readonly.pm # once (26µs+7µs) by XML::LibXML::XPathContext::BEGIN@14 at line 14 of XML/LibXML/XPathContext.pm # once (25µs+6µs) by XML::NamespaceSupport::BEGIN@18 at line 18 of XML/NamespaceSupport.pm # once (24µs+7µs) by MIME::QuotedPrint::BEGIN@4 at line 4 of MIME/QuotedPrint.pm # once (24µs+6µs) by Text::CSV_XS::BEGIN@30 at line 30 of Text/CSV_XS.pm # once (24µs+6µs) by MARC::File::XML::BEGIN@5 at line 5 of MARC/File/XML.pm # once (23µs+6µs) by XML::LibXML::Error::BEGIN@19 at line 19 of XML/LibXML/Error.pm # once (22µs+6µs) by File::Spec::BEGIN@4 at line 4 of File/Spec.pm # once (20µs+6µs) by C4::Members::AttributeTypes::BEGIN@24 at line 24 of C4/Members/AttributeTypes.pm # once (20µs+5µs) by XML::Parser::BEGIN@13 at line 13 of XML/Parser.pm # once (18µs+6µs) by Text::CSV::BEGIN@6 at line 6 of Text/CSV.pm # once (18µs+6µs) by base::BEGIN@4 at line 4 of base.pm # once (17µs+6µs) by MIME::Lite::SMTP::BEGIN@3107 at line 3107 of MIME/Lite.pm # once (18µs+4µs) by C4::Members::BEGIN@916 at line 916 of C4/Members.pm # once (17µs+5µs) by C4::Members::Messaging::BEGIN@24 at line 24 of C4/Members/Messaging.pm # once (16µs+5µs) by parent::BEGIN@3 at line 3 of parent.pm # once (17µs+4µs) by C4::ClassSortRoutine::LCC::BEGIN@25 at line 25 of C4/ClassSortRoutine/LCC.pm # once (16µs+4µs) by DateTime::Format::DateParse::BEGIN@9 at line 9 of DateTime/Format/DateParse.pm # once (16µs+4µs) by MARC::Record::BEGIN@13 at line 13 of MARC/Record.pm # once (15µs+4µs) by C4::ClassSortRoutine::Generic::BEGIN@23 at line 23 of C4/ClassSortRoutine/Generic.pm # once (15µs+4µs) by XML::LibXML::Document::BEGIN@1414 at line 1414 of XML/LibXML.pm # once (15µs+4µs) by DateTime::Format::Builder::Parser::Dispatch::BEGIN@7 at line 7 of DateTime/Format/Builder/Parser/Dispatch.pm # once (15µs+4µs) by XML::LibXML::Text::BEGIN@1772 at line 1772 of XML/LibXML.pm # once (14µs+4µs) by Digest::base::BEGIN@4 at line 4 of Digest/base.pm # once (14µs+4µs) by C4::ClassSortRoutine::Dewey::BEGIN@23 at line 23 of C4/ClassSortRoutine/Dewey.pm # once (14µs+4µs) by MARC::File::USMARC::BEGIN@13 at line 13 of MARC/File/USMARC.pm # once (14µs+4µs) by DateTime::Format::Builder::Parser::Quick::BEGIN@7 at line 7 of DateTime/Format/Builder/Parser/Quick.pm # once (14µs+4µs) by Class::Factory::Util::BEGIN@4 at line 4 of Class/Factory/Util.pm # once (14µs+4µs) by File::Spec::Unix::BEGIN@4 at line 4 of File/Spec/Unix.pm # once (14µs+4µs) by MIME::Types::BEGIN@7 at line 7 of MIME/Types.pm # once (13µs+4µs) by Readonly::BEGIN@19 at line 19 of Readonly.pm # once (13µs+4µs) by Config::BEGIN@7 at line 7 of Config_heavy.pl # once (14µs+4µs) by DateTime::Format::Builder::Parser::Strptime::BEGIN@9 at line 9 of DateTime/Format/Builder/Parser/Strptime.pm # once (13µs+4µs) by C4::SMS::BEGIN@40 at line 40 of C4/SMS.pm # once (13µs+4µs) by XML::LibXML::Literal::BEGIN@18 at line 18 of XML/LibXML/Literal.pm # once (14µs+4µs) by MARC::File::USMARC::BEGIN@17 at line 17 of MARC/File/USMARC.pm # once (13µs+4µs) by DateTime::Format::MySQL::BEGIN@5 at line 5 of DateTime/Format/MySQL.pm # once (14µs+3µs) by DateTime::Format::Builder::BEGIN@15 at line 15 of DateTime/Format/Builder.pm # once (13µs+4µs) by XML::Parser::ExpatNB::BEGIN@590 at line 590 of XML/Parser/Expat.pm # once (14µs+3µs) by XML::SAX::Expat::BEGIN@13 at line 13 of XML/SAX/Expat.pm # once (14µs+3µs) by MIME::Type::BEGIN@6 at line 6 of MIME/Type.pm # once (13µs+4µs) by DateTime::Format::Builder::Parser::Regex::BEGIN@9 at line 9 of DateTime/Format/Builder/Parser/Regex.pm # once (13µs+4µs) by C4::Dates::BEGIN@31 at line 31 of C4/Dates.pm # once (13µs+4µs) by Memoize::BEGIN@27 at line 27 of Memoize.pm # once (14µs+3µs) by MARC::Field::BEGIN@11 at line 11 of MARC/Field.pm # once (13µs+4µs) by Mail::Address::BEGIN@6 at line 6 of Mail/Address.pm # once (13µs+4µs) by Mail::Sendmail::BEGIN@183 at line 183 of Mail/Sendmail.pm # once (13µs+3µs) by DateTime::Span::BEGIN@13 at line 13 of DateTime/Span.pm # once (13µs+3µs) by XML::LibXML::Number::BEGIN@16 at line 16 of XML/LibXML/Number.pm # once (13µs+4µs) by MARC::File::BEGIN@13 at line 13 of MARC/File.pm # once (13µs+3µs) by MARC::Record::BEGIN@24 at line 24 of MARC/Record.pm # once (13µs+3µs) by XML::LibXML::DocumentFragment::BEGIN@1510 at line 1510 of XML/LibXML.pm # once (12µs+3µs) by DateTime::Set::BEGIN@12 at line 12 of DateTime/Set.pm # once (12µs+3µs) by DateTime::SpanSet::BEGIN@14 at line 14 of DateTime/SpanSet.pm # once (12µs+3µs) by XML::SAX::ParserFactory::BEGIN@6 at line 6 of XML/SAX/ParserFactory.pm # once (12µs+3µs) by XML::LibXML::AttributeHash::BEGIN@9 at line 9 of XML/LibXML/AttributeHash.pm # once (12µs+3µs) by XML::LibXML::Comment::BEGIN@1817 at line 1817 of XML/LibXML.pm # once (12µs+3µs) by XML::LibXML::Boolean::BEGIN@17 at line 17 of XML/LibXML/Boolean.pm # once (12µs+3µs) by Algorithm::CheckDigits::BEGIN@8 at line 8 of Algorithm/CheckDigits.pm # once (12µs+3µs) by XML::LibXML::NodeList::BEGIN@19 at line 19 of XML/LibXML/NodeList.pm # once (12µs+3µs) by XML::LibXML::Element::BEGIN@1533 at line 1533 of XML/LibXML.pm # once (11µs+3µs) by XML::SAX::Exception::BEGIN@11 at line 11 of XML/SAX/Exception.pm # once (12µs+2µs) by Time::Zone::BEGIN@59 at line 59 of Time/Zone.pm # once (12µs+2µs) by XML::LibXML::CDATASection::BEGIN@1824 at line 1824 of XML/LibXML.pm # once (11µs+3µs) by MARC::Record::BEGIN@33 at line 33 of MARC/Record.pm # once (11µs+3µs) by XML::LibXML::Dtd::BEGIN@1855 at line 1855 of XML/LibXML.pm # once (11µs+2µs) by XML::LibXML::Attr::BEGIN@1833 at line 1833 of XML/LibXML.pm # once (11µs+2µs) by XML::LibXML::PI::BEGIN@1866 at line 1866 of XML/LibXML.pm # once (11µs+2µs) by C4::Dates::BEGIN@39 at line 39 of C4/Dates.pm
sub import {
11152118µs my $callpack = caller;
12152194µs my (undef, @imports) = @_;
1315234µs my ($sym, $ch);
14152641µs foreach (@imports) {
155162.21ms516803µs if (($ch, $sym) = /^([\$\@\%\*\&])(.+)/) {
# spent 803µs making 516 calls to vars::CORE:match, avg 2µs/call
16516715µs516223µs if ($sym =~ /\W/) {
# spent 223µs making 516 calls to vars::CORE:match, avg 431ns/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 }
28516855µs516159µs $sym = "${callpack}::$sym" unless $sym =~ /::/;
# spent 159µs making 516 calls to vars::CORE:match, avg 308ns/call
29 *$sym =
30 ( $ch eq "\$" ? \$$sym
31 : $ch eq "\@" ? \@$sym
32 : $ch eq "\%" ? \%$sym
33 : $ch eq "\*" ? \*$sym
34 : $ch eq "\&" ? \&$sym
355161.39ms : 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
4613µs1;
47__END__
 
# spent 1.18ms within vars::CORE:match which was called 1548 times, avg 765ns/call: # 516 times (803µs+0s) by vars::import at line 15, avg 2µs/call # 516 times (223µs+0s) by vars::import at line 16, avg 431ns/call # 516 times (159µs+0s) by vars::import at line 28, avg 308ns/call
sub vars::CORE:match; # opcode