← 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/Exporter.pm
StatementsExecuted 5548 statements in 21.2ms
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
35434915816.4ms25.8msExporter::::importExporter::import
69414.08ms4.36msExporter::::as_heavyExporter::as_heavy
171721680µs680µsExporter::::CORE:matchExporter::CORE:match (opcode)
157821502µs502µsExporter::::CORE:substExporter::CORE:subst (opcode)
6143249µs894µsExporter::::exportExporter::export
62227µs116µsExporter::::export_to_levelExporter::export_to_level
1117µs37µsExporter::::export_tagsExporter::export_tags
1116µs3.61msExporter::::export_ok_tagsExporter::export_ok_tags
0000s0sExporter::::__ANON__[:64]Exporter::__ANON__[:64]
0000s0sExporter::::export_failExporter::export_fail
0000s0sExporter::::require_versionExporter::require_version
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1package Exporter;
2
3112µsrequire 5.006;
4
5# Be lean.
6#use strict;
7#no strict 'refs';
8
91400nsour $Debug = 0;
101200nsour $ExportLevel = 0;
111300nsour $Verbose ||= 0;
121400nsour $VERSION = '5.71';
131300nsour (%Cache);
14
15
# spent 4.36ms (4.08+289µs) within Exporter::as_heavy which was called 69 times, avg 63µs/call: # 61 times (463µs+182µs) by Exporter::export at line 25, avg 11µs/call # 6 times (64µs+25µs) by Exporter::export_to_level at line 81, avg 15µs/call # once (3.53ms+73µs) by Exporter::export_ok_tags at line 89 # once (22µs+8µs) by Exporter::export_tags at line 85
sub as_heavy {
16691.82ms require Exporter::Heavy;
17 # Unfortunately, this does not work if the caller is aliased as *name = \&foo
18 # Thus the need to create a lot of identical subroutines
1969159µs my $c = (caller(1))[3];
2069378µs69221µs $c =~ s/.*:://;
# spent 221µs making 69 calls to Exporter::CORE:subst, avg 3µs/call
2169275µs \&{"Exporter::Heavy::heavy_$c"};
22}
23
24
# spent 894µs (249+646) within Exporter::export which was called 61 times, avg 15µs/call: # 53 times (222µs+592µs) by Exporter::import at line 62, avg 15µs/call # 6 times (21µs+35µs) by Exporter::Heavy::heavy_export_to_level at line 205 of Exporter/Heavy.pm, avg 9µs/call # once (4µs+12µs) by FileHandle::import at line 73 of FileHandle.pm # once (2µs+6µs) by FileHandle::import at line 81 of FileHandle.pm
sub export {
2561270µs1229.08ms goto &{as_heavy()};
# spent 8.43ms making 61 calls to Exporter::Heavy::heavy_export, avg 138µs/call # spent 646µs making 61 calls to Exporter::as_heavy, avg 11µs/call
26}
27
28
# spent 25.8ms (16.4+9.31) within Exporter::import which was called 354 times, avg 73µs/call: # 6 times (917µs+1.78ms) by POSIX::import at line 30 of POSIX.pm, avg 449µs/call # once (3.84ms+56µs) by MARC::File::XML::BEGIN@12 at line 12 of MARC/File/XML.pm # once (128µs+302µs) by C4::Koha::BEGIN@32 at line 32 of C4/Koha.pm # once (15µs+358µs) by DBD::mysql::dr::BEGIN@112 at line 112 of DBD/mysql.pm # once (344µs+20µs) by Mail::Sendmail::BEGIN@54 at line 54 of Mail/Sendmail.pm # once (32µs+298µs) by C4::Reserves::BEGIN@27 at line 27 of C4/Reserves.pm # once (24µs+303µs) by C4::Circulation::BEGIN@27 at line 27 of C4/Circulation.pm # once (22µs+304µs) by main::BEGIN@73 at line 73 of svc/members/upsert # once (22µs+280µs) by C4::Members::BEGIN@33 at line 33 of C4/Members.pm # once (24µs+272µs) by C4::Circulation::BEGIN@28 at line 28 of C4/Circulation.pm # once (264µs+21µs) by IO::Seekable::BEGIN@12 at line 12 of IO/Seekable.pm # once (16µs+267µs) by C4::Items::BEGIN@27 at line 27 of C4/Items.pm # once (14µs+268µs) by DBD::mysql::db::BEGIN@197 at line 197 of DBD/mysql.pm # once (29µs+240µs) by C4::Overdues::BEGIN@26 at line 26 of C4/Overdues.pm # once (22µs+228µs) by C4::Items::BEGIN@26 at line 26 of C4/Items.pm # once (226µs+14µs) by Date::Calc::BEGIN@18 at line 30 of Date/Calc.pm # once (238µs+2µs) by C4::Members::BEGIN@40 at line 40 of C4/Members.pm # once (18µs+221µs) by C4::Biblio::BEGIN@33 at line 33 of C4/Biblio.pm # once (27µs+183µs) by C4::Auth::BEGIN@31 at line 31 of C4/Auth.pm # once (20µs+183µs) by C4::Members::BEGIN@31 at line 31 of C4/Members.pm # once (57µs+137µs) by C4::Templates::BEGIN@34 at line 34 of C4/Templates.pm # once (40µs+137µs) by MARC::Charset::Code::BEGIN@8 at line 8 of MARC/Charset/Code.pm # once (165µs+8µs) by File::Temp::BEGIN@14 at line 14 of File/Temp.pm # once (15µs+147µs) by MARC::Charset::BEGIN@15 at line 15 of MARC/Charset.pm # once (23µs+120µs) by C4::Biblio::BEGIN@39 at line 39 of C4/Biblio.pm # once (15µs+125µs) by C4::Budgets::BEGIN@24 at line 24 of C4/Budgets.pm # once (130µs+8µs) by Modern::Perl::BEGIN@16 at line 25 of IO/File.pm # once (128µs+10µs) by POSIX::BEGIN@11 at line 11 of POSIX.pm # once (14µs+122µs) by MARC::Charset::Table::BEGIN@44 at line 44 of MARC/Charset/Table.pm # once (18µs+117µs) by C4::Reserves::BEGIN@31 at line 31 of C4/Reserves.pm # once (21µs+107µs) by C4::Members::BEGIN@30 at line 30 of C4/Members.pm # once (34µs+92µs) by C4::Service::BEGIN@50 at line 50 of C4/Service.pm # once (118µs+6µs) by C4::Overdues::BEGIN@25 at line 1 of (eval 28)[Date/Manip.pm:33] # once (112µs+10µs) by C4::Context::BEGIN@3 at line 3 of ZOOM.pm # once (22µs+98µs) by C4::Members::BEGIN@29 at line 29 of C4/Members.pm # once (18µs+98µs) by C4::Biblio::BEGIN@36 at line 36 of C4/Biblio.pm # once (110µs+6µs) by C4::Circulation::BEGIN@29 at line 29 of C4/Circulation.pm # once (107µs+8µs) by CGI::BEGIN@9 at line 9 of CGI.pm # once (18µs+96µs) by C4::Reserves::BEGIN@36 at line 36 of C4/Reserves.pm # once (81µs+32µs) by C4::Letters::BEGIN@26 at line 26 of C4/Letters.pm # once (105µs+6µs) by Date::Manip::Recur::BEGIN@22 at line 22 of Date/Manip/Recur.pm # once (106µs+5µs) by Date::Manip::Delta::BEGIN@21 at line 21 of Date/Manip/Delta.pm # once (18µs+91µs) by C4::Overdues::BEGIN@28 at line 28 of C4/Overdues.pm # once (14µs+95µs) by Storable::BEGIN@53 at line 54 of Storable.pm # once (101µs+8µs) by C4::Reserves::BEGIN@29 at line 29 of C4/Reserves.pm # once (99µs+8µs) by Module::Load::Conditional::BEGIN@11 at line 39 of FileHandle.pm # once (18µs+87µs) by C4::Message::BEGIN@25 at line 25 of C4/Message.pm # once (14µs+90µs) by C4::Circulation::BEGIN@33 at line 33 of C4/Circulation.pm # once (24µs+78µs) by C4::Context::BEGIN@104 at line 104 of C4/Context.pm # once (97µs+5µs) by Date::Manip::Obj::BEGIN@12 at line 12 of Date/Manip/Obj.pm # once (96µs+6µs) by Date::Manip::TZ::BEGIN@22 at line 22 of Date/Manip/TZ.pm # once (74µs+26µs) by C4::Output::BEGIN@35 at line 35 of C4/Output.pm # once (16µs+83µs) by C4::Items::BEGIN@30 at line 30 of C4/Items.pm # once (92µs+5µs) by Module::Metadata::BEGIN@20 at line 20 of Module/Metadata.pm # once (14µs+83µs) by C4::Members::BEGIN@32 at line 32 of C4/Members.pm # once (87µs+7µs) by C4::Dates::BEGIN@29 at line 29 of C4/Dates.pm # once (23µs+69µs) by C4::Stats::BEGIN@25 at line 25 of C4/Stats.pm # once (18µs+73µs) by C4::Members::BEGIN@37 at line 37 of C4/Members.pm # once (85µs+5µs) by Date::Manip::TZ_Base::BEGIN@12 at line 12 of Date/Manip/TZ_Base.pm # once (22µs+67µs) by C4::ClassSource::BEGIN@25 at line 25 of C4/ClassSource.pm # once (83µs+6µs) by Date::Manip::Date::BEGIN@22 at line 22 of Date/Manip/Date.pm # once (74µs+15µs) by C4::Service::BEGIN@49 at line 49 of C4/Service.pm # once (24µs+64µs) by DBD::mysql::dr::BEGIN@113 at line 113 of DBD/mysql.pm # once (18µs+66µs) by C4::Letters::BEGIN@32 at line 32 of C4/Letters.pm # once (14µs+70µs) by C4::Members::BEGIN@34 at line 34 of C4/Members.pm # once (18µs+64µs) by C4::Accounts::BEGIN@24 at line 24 of C4/Accounts.pm # once (21µs+60µs) by C4::Auth_with_cas::BEGIN@23 at line 23 of C4/Auth_with_cas.pm # once (73µs+5µs) by Date::Manip::Base::BEGIN@24 at line 24 of Date/Manip/Base.pm # once (73µs+4µs) by C4::Letters::BEGIN@29 at line 29 of C4/Letters.pm # once (15µs+62µs) by C4::VirtualShelves::BEGIN@25 at line 25 of C4/VirtualShelves.pm # once (15µs+61µs) by C4::Dates::BEGIN@26 at line 26 of C4/Dates.pm # once (14µs+61µs) by C4::Letters::BEGIN@24 at line 24 of C4/Letters.pm # once (69µs+5µs) by C4::Auth::BEGIN@30 at line 30 of C4/Auth.pm # once (54µs+18µs) by C4::Koha::BEGIN@27 at line 27 of C4/Koha.pm # once (66µs+5µs) by C4::Items::BEGIN@32 at line 32 of C4/Items.pm # once (66µs+4µs) by C4::Circulation::BEGIN@37 at line 37 of C4/Circulation.pm # once (16µs+52µs) by C4::Circulation::BEGIN@36 at line 36 of C4/Circulation.pm # once (16µs+49µs) by C4::Circulation::BEGIN@26 at line 26 of C4/Circulation.pm # once (16µs+48µs) by C4::Charset::BEGIN@26 at line 26 of C4/Charset.pm # once (14µs+50µs) by C4::Biblio::BEGIN@35 at line 35 of C4/Biblio.pm # once (60µs+4µs) by IO::File::BEGIN@8 at line 8 of IO/File.pm # once (56µs+5µs) by C4::Overdues::BEGIN@25 at line 25 of C4/Overdues.pm # once (51µs+8µs) by C4::Templates::BEGIN@35 at line 35 of C4/Templates.pm # once (54µs+5µs) by Data::OptList::BEGIN@10 at line 95 of Params/Util.pm # once (51µs+7µs) by MIME::Types::BEGIN@16 at line 34 of List/Util.pm # once (14µs+44µs) by C4::Budgets::BEGIN@25 at line 25 of C4/Budgets.pm # once (13µs+44µs) by C4::Items::BEGIN@31 at line 31 of C4/Items.pm # once (53µs+4µs) by Template::Provider::BEGIN@47 at line 47 of Template/Provider.pm # once (49µs+4µs) by DateTime::TimeZone::OffsetOnly::BEGIN@9 at line 9 of DateTime/TimeZone/OffsetOnly.pm # once (13µs+39µs) by C4::SQLHelper::BEGIN@26 at line 26 of C4/SQLHelper.pm # once (48µs+2µs) by C4::Biblio::BEGIN@37 at line 37 of C4/Biblio.pm # once (47µs+4µs) by XML::Simple::BEGIN@41 at line 41 of XML/Simple.pm # once (46µs+4µs) by Params::Check::BEGIN@5 at line 5 of Params/Check.pm # once (48µs+3µs) by IO::Handle::BEGIN@6 at line 6 of IO/Handle.pm # once (13µs+37µs) by C4::Overdues::BEGIN@30 at line 30 of C4/Overdues.pm # once (47µs+3µs) by Params::Validate::BEGIN@10 at line 10 of Params/Validate.pm # once (46µs+3µs) by IO::BEGIN@6 at line 6 of IO.pm # once (45µs+3µs) by C4::Letters::BEGIN@28 at line 28 of C4/Letters.pm # once (44µs+3µs) by SelectSaver::BEGIN@6 at line 6 of SelectSaver.pm # once (45µs+2µs) by IO::File::BEGIN@9 at line 9 of IO/File.pm # once (43µs+3µs) by IO::Seekable::BEGIN@6 at line 6 of IO/Seekable.pm # once (42µs+4µs) by C4::Members::BEGIN@35 at line 35 of C4/Members.pm # once (43µs+3µs) by MARC::File::Encode::BEGIN@22 at line 22 of MARC/File/Encode.pm # once (42µs+3µs) by FindBin::BEGIN@80 at line 80 of FindBin.pm # once (42µs+2µs) by DateTime::TimeZone::BEGIN@15 at line 15 of DateTime/TimeZone.pm # once (42µs+2µs) by DateTime::Format::Builder::BEGIN@12 at line 12 of DateTime/Format/Builder.pm # once (41µs+2µs) by C4::Auth::BEGIN@22 at line 22 of C4/Auth.pm # once (40µs+4µs) by File::Path::BEGIN@6 at line 6 of File/Path.pm # once (41µs+2µs) by DateTime::BEGIN@16 at line 17 of DateTime.pm # once (40µs+2µs) by C4::Circulation::BEGIN@50 at line 50 of C4/Circulation.pm # once (39µs+2µs) by Date::Manip::Obj::BEGIN@13 at line 13 of Date/Manip/Obj.pm # once (39µs+2µs) by IO::Handle::BEGIN@7 at line 7 of IO/Handle.pm # once (40µs+2µs) by C4::Letters::BEGIN@35 at line 35 of C4/Letters.pm # once (39µs+2µs) by C4::Letters::BEGIN@23 at line 571 of MIME/Lite.pm # once (35µs+6µs) by C4::Accounts::BEGIN@27 at line 27 of C4/Accounts.pm # once (38µs+2µs) by C4::Circulation::BEGIN@52 at line 52 of C4/Circulation.pm # once (37µs+2µs) by C4::Boolean::BEGIN@27 at line 27 of C4/Boolean.pm # once (37µs+2µs) by SelectSaver::BEGIN@7 at line 7 of SelectSaver.pm # once (36µs+3µs) by C4::Auth::BEGIN@24 at line 24 of C4/Auth.pm # once (35µs+3µs) by DateTime::Locale::BEGIN@12 at line 12 of DateTime/Locale.pm # once (36µs+2µs) by Tie::Hash::BEGIN@5 at line 5 of Tie/Hash.pm # once (36µs+2µs) by DateTime::Format::Strptime::BEGIN@10 at line 10 of DateTime/Format/Strptime.pm # once (35µs+2µs) by Koha::AuthUtils::BEGIN@21 at line 21 of Koha/AuthUtils.pm # once (35µs+2µs) by C4::Output::BEGIN@31 at line 31 of C4/Output.pm # once (35µs+2µs) by CGI::Session::Driver::BEGIN@6 at line 6 of CGI/Session/Driver.pm # once (35µs+2µs) by Module::Load::Conditional::BEGIN@6 at line 6 of Module/Load/Conditional.pm # once (34µs+3µs) by DateTime::TimeZone::Local::BEGIN@6 at line 6 of DateTime/TimeZone/Local.pm # once (35µs+2µs) by C4::Items::BEGIN@24 at line 24 of C4/Items.pm # once (35µs+2µs) by C4::Context::BEGIN@102 at line 98 of XML/Simple.pm # once (34µs+2µs) by DateTime::Span::BEGIN@12 at line 12 of DateTime/Span.pm # once (34µs+2µs) by CGI::Session::BEGIN@3 at line 3 of CGI/Session.pm # once (34µs+2µs) by Koha::Calendar::BEGIN@10 at line 10 of Koha/Calendar.pm # once (34µs+2µs) by Params::Validate::XS::BEGIN@6 at line 6 of Params/Validate/XS.pm # once (34µs+2µs) by CGI::Session::Driver::mysql::BEGIN@6 at line 6 of CGI/Session/Driver/mysql.pm # once (34µs+2µs) by IO::File::BEGIN@11 at line 11 of IO/File.pm # once (34µs+2µs) by C4::Templates::BEGIN@5 at line 5 of C4/Templates.pm # once (32µs+3µs) by C4::Members::BEGIN@41 at line 41 of C4/Members.pm # once (33µs+2µs) by Try::Tiny::BEGIN@15 at line 15 of Try/Tiny.pm # once (29µs+6µs) by DateTime::Format::DateParse::BEGIN@14 at line 14 of DateTime/Format/DateParse.pm # once (33µs+2µs) by Template::BEGIN@31 at line 31 of Template.pm # once (34µs+1µs) by DateTime::Set::BEGIN@5 at line 5 of DateTime/Set.pm # once (34µs+1µs) by XML::Parser::BEGIN@15 at line 15 of XML/Parser.pm # once (33µs+2µs) by C4::Context::BEGIN@107 at line 107 of C4/Context.pm # once (33µs+2µs) by CGI::Cookie::BEGIN@10 at line 10 of CGI/Cookie.pm # once (33µs+1µs) by C4::Auth::BEGIN@32 at line 32 of C4/Auth.pm # once (33µs+1µs) by DateTime::Format::Builder::Parser::Quick::BEGIN@8 at line 8 of DateTime/Format/Builder/Parser/Quick.pm # once (32µs+2µs) by DateTime::SpanSet::BEGIN@13 at line 13 of DateTime/SpanSet.pm # once (31µs+2µs) by MARC::File::XML::BEGIN@11 at line 11 of MARC/File/XML.pm # once (32µs+2µs) by C4::Dates::BEGIN@24 at line 24 of C4/Dates.pm # once (31µs+3µs) by C4::Items::BEGIN@33 at line 33 of C4/Items.pm # once (32µs+2µs) by MARC::Field::BEGIN@6 at line 6 of MARC/Field.pm # once (31µs+2µs) by Set::Infinite::Basic::BEGIN@11 at line 11 of Set/Infinite/Basic.pm # once (32µs+1µs) by MIME::Type::BEGIN@12 at line 12 of MIME/Type.pm # once (31µs+2µs) by C4::Linker::BEGIN@47 at line 47 of C4/Linker.pm # once (31µs+2µs) by DateTime::Format::Builder::Parser::BEGIN@8 at line 8 of DateTime/Format/Builder/Parser.pm # once (30µs+3µs) by C4::Members::BEGIN@26 at line 26 of C4/Members.pm # once (31µs+2µs) by C4::Biblio::BEGIN@24 at line 24 of C4/Biblio.pm # once (31µs+2µs) by DateTime::BEGIN@11 at line 11 of DateTime.pm # once (31µs+1µs) by C4::Auth::BEGIN@34 at line 34 of C4/Auth.pm # once (30µs+2µs) by C4::Service::BEGIN@47 at line 47 of C4/Service.pm # once (30µs+2µs) by Set::Infinite::BEGIN@17 at line 17 of Set/Infinite.pm # once (31µs+1µs) by DateTime::Format::Builder::Parser::Regex::BEGIN@10 at line 10 of DateTime/Format/Builder/Parser/Regex.pm # once (30µs+1µs) by C4::Charset::BEGIN@27 at line 27 of C4/Charset.pm # once (30µs+2µs) by C4::Languages::BEGIN@24 at line 24 of C4/Languages.pm # once (30µs+2µs) by XML::SAX::BEGIN@15 at line 15 of XML/SAX.pm # once (29µs+2µs) by File::Temp::BEGIN@10 at line 10 of File/Temp.pm # once (26µs+5µs) by C4::Members::BEGIN@27 at line 27 of C4/Members.pm # once (31µs+0s) by Template::Constants::BEGIN@24 at line 24 of Template/Constants.pm # once (29µs+2µs) by Time::Local::BEGIN@4 at line 4 of Time/Local.pm # once (29µs+1µs) by C4::Members::BEGIN@28 at line 28 of C4/Members.pm # once (29µs+1µs) by C4::Overdues::BEGIN@29 at line 29 of C4/Overdues.pm # once (28µs+2µs) by MIME::Types::BEGIN@262 at line 262 of MIME/Types.pm # once (28µs+2µs) by C4::ItemCirculationAlertPreference::BEGIN@25 at line 25 of C4/ItemCirculationAlertPreference.pm # once (28µs+2µs) by Memoize::BEGIN@25 at line 25 of Memoize.pm # once (28µs+2µs) by File::Temp::BEGIN@13 at line 13 of File/Temp.pm # once (28µs+2µs) by Algorithm::CheckDigits::BEGIN@7 at line 7 of Algorithm/CheckDigits.pm # once (28µs+1µs) by namespace::clean::BEGIN@11 at line 38 of Sub/Exporter/Progressive.pm # once (28µs+2µs) by C4::Message::BEGIN@26 at line 26 of C4/Message.pm # once (28µs+2µs) by Module::Implementation::BEGIN@9 at line 9 of Module/Implementation.pm # once (28µs+2µs) by Sub::Install::BEGIN@6 at line 6 of Sub/Install.pm # once (28µs+2µs) by CGI::Session::Driver::DBI::BEGIN@8 at line 8 of CGI/Session/Driver/DBI.pm # once (28µs+1µs) by XML::Parser::Expat::BEGIN@8 at line 8 of XML/Parser/Expat.pm # once (28µs+2µs) by C4::Members::BEGIN@42 at line 42 of C4/Members.pm # once (28µs+2µs) by C4::VirtualShelves::BEGIN@23 at line 23 of C4/VirtualShelves.pm # once (28µs+2µs) by autouse::import at line 28 of autouse.pm # once (28µs+2µs) by Date::Parse::BEGIN@12 at line 12 of Date/Parse.pm # once (27µs+2µs) by DBD::mysql::BEGIN@11 at line 11 of DBD/mysql.pm # once (28µs+2µs) by DateTime::Format::Builder::BEGIN@10 at line 10 of DateTime/Format/Builder.pm # once (28µs+1µs) by C4::Letters::BEGIN@30 at line 30 of C4/Letters.pm # once (28µs+2µs) by XML::LibXML::Element::BEGIN@1537 at line 1537 of XML/LibXML.pm # once (27µs+2µs) by C4::Koha::BEGIN@28 at line 28 of C4/Koha.pm # once (27µs+2µs) by C4::Budgets::BEGIN@23 at line 23 of C4/Budgets.pm # once (29µs+0s) by JSON::XS::BEGIN@121 at line 121 of JSON/XS.pm # once (27µs+2µs) by Module::Metadata::BEGIN@29 at line 29 of Module/Metadata.pm # once (27µs+1µs) by C4::Charset::BEGIN@23 at line 23 of C4/Charset.pm # once (27µs+2µs) by C4::Circulation::BEGIN@51 at line 51 of C4/Circulation.pm # once (27µs+2µs) by Data::Dumper::BEGIN@22 at line 22 of Data/Dumper.pm # once (27µs+2µs) by MARC::Charset::BEGIN@11 at line 11 of MARC/Charset.pm # once (27µs+1µs) by XML::LibXML::BEGIN@21 at line 21 of XML/LibXML.pm # once (27µs+1µs) by C4::Letters::BEGIN@33 at line 33 of C4/Letters.pm # once (27µs+1µs) by C4::Circulation::BEGIN@39 at line 39 of C4/Circulation.pm # once (27µs+2µs) by C4::SQLHelper::BEGIN@23 at line 23 of C4/SQLHelper.pm # once (27µs+2µs) by DateTime::Locale::Base::BEGIN@6 at line 6 of DateTime/Locale/Base.pm # once (26µs+2µs) by MARC::Record::BEGIN@16 at line 16 of MARC/Record.pm # once (26µs+2µs) by Text::CSV_XS::BEGIN@28 at line 28 of Text/CSV_XS.pm # once (27µs+1µs) by C4::Circulation::BEGIN@38 at line 38 of C4/Circulation.pm # once (26µs+1µs) by DateTime::Format::Builder::Parser::generic::BEGIN@8 at line 8 of DateTime/Format/Builder/Parser/generic.pm # once (26µs+2µs) by Time::Zone::BEGIN@45 at line 45 of Time/Zone.pm # once (26µs+1µs) by XML::Parser::ExpatNB::BEGIN@591 at line 591 of XML/Parser/Expat.pm # once (26µs+2µs) by String::Random::BEGIN@20 at line 20 of String/Random.pm # once (26µs+2µs) by Crypt::Eksblowfish::Bcrypt::BEGIN@43 at line 43 of Crypt/Eksblowfish/Bcrypt.pm # once (26µs+2µs) by FindBin::BEGIN@84 at line 84 of FindBin.pm # once (28µs+0s) by CGI::Session::ID::md5::BEGIN@6 at line 6 of CGI/Session/ID/md5.pm # once (26µs+2µs) by Socket::BEGIN@10 at line 10 of Socket.pm # once (25µs+2µs) by XML::SAX::BEGIN@17 at line 17 of XML/SAX.pm # once (26µs+1µs) by MARC::File::USMARC::BEGIN@14 at line 14 of MARC/File/USMARC.pm # once (26µs+1µs) by XML::SAX::Exception::BEGIN@13 at line 13 of XML/SAX/Exception.pm # once (26µs+1µs) by DateTime::Format::Builder::Parser::generic::BEGIN@7 at line 7 of DateTime/Format/Builder/Parser/generic.pm # once (25µs+2µs) by C4::Members::BEGIN@43 at line 43 of C4/Members.pm # once (25µs+2µs) by DateTime::Duration::BEGIN@9 at line 9 of DateTime/Duration.pm # once (26µs+1µs) by XML::LibXML::XPathContext::BEGIN@16 at line 16 of XML/LibXML/XPathContext.pm # once (25µs+2µs) by DateTime::Set::BEGIN@4 at line 4 of DateTime/Set.pm # once (25µs+2µs) by DateTime::Format::Builder::Parser::Strptime::BEGIN@11 at line 11 of DateTime/Format/Builder/Parser/Strptime.pm # once (25µs+1µs) by C4::Context::BEGIN@108 at line 108 of C4/Context.pm # once (25µs+1µs) by DateTime::Format::DateParse::BEGIN@15 at line 15 of DateTime/Format/DateParse.pm # once (25µs+1µs) by XML::LibXML::Node::BEGIN@1268 at line 1268 of XML/LibXML.pm # once (25µs+1µs) by Set::Infinite::Arithmetic::BEGIN@9 at line 9 of Set/Infinite/Arithmetic.pm # once (26µs+0s) by C4::Context::BEGIN@100 at line 100 of C4/Context.pm # once (25µs+2µs) by base::import at line 22 of Class/Accessor.pm # once (25µs+2µs) by Sys::Hostname::Long::BEGIN@3 at line 3 of Sys/Hostname/Long.pm # once (25µs+1µs) by Date::Parse::BEGIN@11 at line 11 of Date/Parse.pm # once (25µs+800ns) by C4::Templates::BEGIN@7 at line 7 of C4/Templates.pm # once (25µs+1µs) by C4::Message::BEGIN@27 at line 27 of C4/Message.pm # once (24µs+2µs) by Class::Load::BEGIN@18 at line 18 of Class/Load.pm # once (24µs+2µs) by Sys::Hostname::BEGIN@5 at line 5 of Sys/Hostname.pm # once (26µs+0s) by Text::CSV::BEGIN@1 at line 1 of (eval 60)[Text/CSV.pm:151] # once (25µs+1µs) by Mail::Address::BEGIN@11 at line 11 of Mail/Address.pm # once (24µs+1µs) by FindBin::BEGIN@83 at line 83 of FindBin.pm # once (24µs+2µs) by Unicode::Normalize::BEGIN@15 at line 15 of Unicode/Normalize.pm # once (24µs+1µs) by DateTime::SpanSet::BEGIN@12 at line 12 of DateTime/SpanSet.pm # once (24µs+1µs) by XML::LibXML::Error::BEGIN@20 at line 20 of XML/LibXML/Error.pm # once (24µs+1µs) by Crypt::Eksblowfish::Bcrypt::BEGIN@41 at line 41 of Crypt/Eksblowfish/Bcrypt.pm # once (24µs+1µs) by MARC::File::USMARC::BEGIN@19 at line 19 of MARC/File/USMARC.pm # once (24µs+1µs) by C4::Overdues::BEGIN@24 at line 24 of C4/Overdues.pm # once (23µs+2µs) by main::BEGIN@77 at line 77 of svc/members/upsert # once (23µs+2µs) by File::Temp::Dir::BEGIN@1541 at line 1541 of File/Temp.pm # once (24µs+1µs) by DateTime::Format::Builder::Parser::Dispatch::BEGIN@8 at line 8 of DateTime/Format/Builder/Parser/Dispatch.pm # once (23µs+2µs) by Date::Parse::BEGIN@10 at line 10 of Date/Parse.pm # once (23µs+2µs) by Template::Service::BEGIN@29 at line 29 of Template/Service.pm # once (24µs+1µs) by C4::Items::BEGIN@28 at line 28 of C4/Items.pm # once (24µs+1µs) by MIME::QuotedPrint::BEGIN@12 at line 12 of MIME/QuotedPrint.pm # once (23µs+1µs) by MIME::Types::BEGIN@15 at line 15 of MIME/Types.pm # once (24µs+1µs) by DateTime::Format::Strptime::BEGIN@11 at line 11 of DateTime/Format/Strptime.pm # once (24µs+1µs) by C4::Circulation::BEGIN@48 at line 48 of C4/Circulation.pm # once (23µs+1µs) by DateTime::BEGIN@19 at line 19 of DateTime.pm # once (24µs+0s) by C4::Biblio::BEGIN@27 at line 27 of C4/Biblio.pm # once (23µs+1µs) by Mail::Sendmail::BEGIN@2 at line 2 of (eval 59)[Mail/Sendmail.pm:64] # once (23µs+1µs) by C4::Letters::BEGIN@23 at line 609 of MIME/Lite.pm # once (23µs+1µs) by C4::Reserves::BEGIN@40 at line 40 of C4/Reserves.pm # once (24µs+0s) by C4::Context::BEGIN@103 at line 103 of C4/Context.pm # once (22µs+2µs) by Koha::Calendar::BEGIN@11 at line 11 of Koha/Calendar.pm # once (22µs+1µs) by DateTime::Locale::Base::BEGIN@9 at line 9 of DateTime/Locale/Base.pm # once (22µs+1000ns) by C4::Letters::BEGIN@36 at line 36 of C4/Letters.pm # once (24µs+0s) by Template::Base::BEGIN@24 at line 24 of Template/Base.pm # once (22µs+1µs) by CGI::BEGIN@4 at line 4 of CGI.pm # once (22µs+1µs) by Encode::BEGIN@47 at line 47 of Encode.pm # once (21µs+2µs) by YAML::BEGIN@11 at line 11 of YAML.pm # once (22µs+1µs) by MARC::Charset::Code::BEGIN@6 at line 6 of MARC/Charset/Code.pm # once (22µs+2µs) by XML::LibXML::Error::BEGIN@257 at line 257 of XML/LibXML/Error.pm # once (22µs+1000ns) by Template::BEGIN@32 at line 32 of Template.pm # once (21µs+1µs) by Try::Tiny::BEGIN@1 at line 1 of (eval 10)[Try/Tiny.pm:18] # once (21µs+1µs) by File::Temp::BEGIN@15 at line 15 of File/Temp.pm # once (21µs+1µs) by File::Temp::BEGIN@17 at line 17 of File/Temp.pm # once (22µs+1µs) by MARC::Charset::Table::BEGIN@45 at line 45 of MARC/Charset/Table.pm # once (21µs+1µs) by Module::Metadata::BEGIN@18 at line 18 of Module/Metadata.pm # once (21µs+2µs) by C4::NewsChannels::BEGIN@24 at line 24 of C4/NewsChannels.pm # once (21µs+1µs) by Mail::Sendmail::BEGIN@55 at line 55 of Mail/Sendmail.pm # once (21µs+2µs) by C4::Koha::BEGIN@29 at line 29 of C4/Koha.pm # once (20µs+1µs) by C4::Circulation::BEGIN@45 at line 45 of C4/Circulation.pm # once (21µs+1µs) by C4::Biblio::BEGIN@34 at line 34 of C4/Biblio.pm # once (21µs+800ns) by C4::Members::BEGIN@36 at line 36 of C4/Members.pm # once (21µs+1µs) by C4::Output::BEGIN@34 at line 34 of C4/Output.pm # once (21µs+1µs) by Set::Infinite::Arithmetic::BEGIN@10 at line 10 of Set/Infinite/Arithmetic.pm # once (20µs+1µs) by DateTime::Format::Builder::Parser::BEGIN@7 at line 7 of DateTime/Format/Builder/Parser.pm # once (21µs+0s) by CGI::BEGIN@5 at line 5 of CGI.pm # once (20µs+700ns) by Template::BEGIN@33 at line 33 of Template.pm # once (20µs+800ns) by Class::Factory::Util::BEGIN@6 at line 6 of Class/Factory/Util.pm # once (19µs+1µs) by Mail::Sendmail::BEGIN@56 at line 56 of Mail/Sendmail.pm # once (20µs+700ns) by DateTime::Format::Builder::Parser::BEGIN@11 at line 11 of DateTime/Format/Builder/Parser.pm # once (20µs+1µs) by C4::Reserves::BEGIN@37 at line 37 of C4/Reserves.pm # once (19µs+1µs) by C4::Log::BEGIN@28 at line 28 of C4/Log.pm # once (19µs+1µs) by Mail::Sendmail::BEGIN@57 at line 57 of Mail/Sendmail.pm # once (20µs+0s) by MARC::Charset::Table::BEGIN@42 at line 42 of MARC/Charset/Table.pm # once (19µs+800ns) by Koha::AuthUtils::BEGIN@22 at line 22 of Koha/AuthUtils.pm # once (20µs+0s) by Template::Provider::BEGIN@45 at line 45 of Template/Provider.pm # once (19µs+1µs) by C4::Items::BEGIN@34 at line 34 of C4/Items.pm # once (19µs+900ns) by C4::Biblio::BEGIN@31 at line 31 of C4/Biblio.pm # once (19µs+800ns) by MARC::Charset::BEGIN@12 at line 12 of MARC/Charset.pm # once (19µs+800ns) by MARC::File::XML::BEGIN@13 at line 13 of MARC/File/XML.pm # once (19µs+800ns) by XML::LibXML::Element::BEGIN@1539 at line 1539 of XML/LibXML.pm # once (18µs+800ns) by Set::Infinite::Basic::BEGIN@12 at line 12 of Set/Infinite/Basic.pm # once (18µs+800ns) by C4::SQLHelper::BEGIN@25 at line 25 of C4/SQLHelper.pm # once (18µs+700ns) by C4::Circulation::BEGIN@47 at line 47 of C4/Circulation.pm # once (18µs+900ns) by XML::SAX::ParserFactory::BEGIN@10 at line 10 of XML/SAX/ParserFactory.pm # once (18µs+700ns) by C4::Accounts::BEGIN@29 at line 29 of C4/Accounts.pm # once (18µs+0s) by C4::Debug::BEGIN@23 at line 23 of C4/Debug.pm # once (18µs+0s) by Template::Document::BEGIN@27 at line 27 of Template/Document.pm # once (17µs+800ns) by C4::Reserves::BEGIN@38 at line 38 of C4/Reserves.pm # once (17µs+900ns) by MARC::Charset::Code::BEGIN@7 at line 7 of MARC/Charset/Code.pm # once (17µs+700ns) by C4::Reserves::BEGIN@42 at line 42 of C4/Reserves.pm # once (17µs+700ns) by C4::Letters::BEGIN@34 at line 34 of C4/Letters.pm # once (17µs+0s) by Template::Service::BEGIN@28 at line 28 of Template/Service.pm # once (17µs+0s) by DBD::mysql::BEGIN@9 at line 9 of DBD/mysql.pm # once (17µs+0s) by DateTime::Set::BEGIN@9 at line 9 of DateTime/Set.pm # once (16µs+700ns) by Sys::Hostname::Long::BEGIN@6 at line 6 of Sys/Hostname/Long.pm # once (16µs+0s) by YAML::BEGIN@6 at line 6 of YAML.pm # once (15µs+700ns) by Date::Manip::Date::BEGIN@23 at line 23 of Date/Manip/Date.pm # once (15µs+900ns) by C4::Circulation::BEGIN@32 at line 32 of C4/Circulation.pm # once (16µs+0s) by CGI::Session::Driver::DBI::BEGIN@7 at line 7 of CGI/Session/Driver/DBI.pm # once (16µs+0s) by MARC::File::XML::BEGIN@7 at line 7 of MARC/File/XML.pm # once (15µs+0s) by Cwd::BEGIN@4 at line 4 of Cwd.pm # once (15µs+0s) by Template::BEGIN@28 at line 28 of Template.pm # once (15µs+0s) by C4::Auth_with_cas::BEGIN@27 at line 27 of C4/Auth_with_cas.pm # once (15µs+0s) by C4::Charset::BEGIN@24 at line 24 of C4/Charset.pm # once (15µs+0s) by Class::Load::XS::BEGIN@11 at line 11 of Class/Load/XS.pm # once (15µs+0s) by DateTime::Format::Strptime::BEGIN@13 at line 13 of DateTime/Format/Strptime.pm # once (15µs+0s) by Readonly::BEGIN@155 at line 155 of Readonly.pm # once (14µs+0s) by File::Temp::BEGIN@16 at line 16 of File/Temp.pm # once (14µs+0s) by DateTime::Set::BEGIN@10 at line 10 of DateTime/Set.pm # once (14µs+0s) by DateTime::Format::Builder::Parser::Strptime::BEGIN@10 at line 10 of DateTime/Format/Builder/Parser/Strptime.pm # once (14µs+0s) by YAML::Node::BEGIN@7 at line 7 of YAML/Node.pm # once (14µs+0s) by YAML::Syck::BEGIN@14 at line 14 of YAML/Syck.pm # once (13µs+0s) by Date::Manip::BEGIN@11 at line 11 of Date/Manip.pm # once (13µs+0s) by Module::Load::Conditional::BEGIN@23 at line 23 of Module/Load/Conditional.pm # once (13µs+0s) by Set::Infinite::_recurrence::BEGIN@15 at line 15 of Set/Infinite/_recurrence.pm # once (13µs+0s) by MARC::Record::BEGIN@27 at line 27 of MARC/Record.pm # once (13µs+0s) by XML::LibXML::BEGIN@29 at line 29 of XML/LibXML.pm # once (12µs+0s) by Date::Parse::BEGIN@13 at line 13 of Date/Parse.pm # once (11µs+0s) by C4::Dates::BEGIN@27 at line 27 of C4/Dates.pm # once (11µs+0s) by Memoize::BEGIN@26 at line 26 of Memoize.pm # once (10µs+0s) by C4::Circulation::BEGIN@31 at line 31 of C4/Circulation.pm # once (10µs+0s) by URI::Escape::BEGIN@140 at line 140 of URI/Escape.pm # once (10µs+0s) by C4::Items::BEGIN@29 at line 29 of C4/Items.pm # once (8µs+0s) by Try::Tiny::BEGIN@12 at line 12 of Try/Tiny.pm # once (7µs+0s) by Params::Validate::BEGIN@8 at line 8 of Params/Validate.pm # once (7µs+0s) by Sub::Name::BEGIN@58 at line 58 of Sub/Name.pm # once (6µs+0s) by File::Temp::BEGIN@43 at line 43 of File/Temp.pm # once (6µs+0s) by Encode::BEGIN@12 at line 12 of Encode.pm # once (5µs+0s) by Encode::Alias::BEGIN@8 at line 8 of Encode/Alias.pm
sub import {
29354135µs my $pkg = shift;
30354232µs my $callpkg = caller($ExportLevel);
31
32354127µs if ($pkg eq "Exporter" and @_ and $_[0] eq "import") {
33618µs *{$callpkg."::import"} = \&import;
34620µs return;
35 }
36
37 # We *need* to treat @{"$pkg\::EXPORT_FAIL"} since Carp uses it :-(
38348593µs my $exports = \@{"$pkg\::EXPORT"};
39 # But, avoid creating things if they don't exist, which saves a couple of
40 # hundred bytes per package processed.
41348358µs my $fail = ${$pkg . '::'}{EXPORT_FAIL} && \@{"$pkg\::EXPORT_FAIL"};
42348146µs return export $pkg, $callpkg, @_
43 if $Verbose or $Debug or $fail && @$fail > 1;
44348277µs my $export_cache = ($Cache{$pkg} ||= {});
45348522µs my $args = @_ or @_ = @$exports;
46
4734894µs if ($args and not %$export_cache) {
48 s/^&//, $export_cache->{$_} = 1
49522.20ms1509281µs foreach (@$exports, @{"$pkg\::EXPORT_OK"});
# spent 281µs making 1509 calls to Exporter::CORE:subst, avg 186ns/call
50 }
5134840µs my $heavy;
52 # Try very hard not to use {} and hence have to enter scope on the foreach
53 # We bomb out of the loop with last as soon as heavy is set.
54348150µs if ($args or $fail) {
55 ($heavy = (/\W/ or $args and not exists $export_cache->{$_}
56 or $fail and @$fail and $_ eq $fail->[0])) and last
572251.80ms693365µs foreach (@_);
# spent 365µs making 693 calls to Exporter::CORE:match, avg 527ns/call
58 } else {
59 ($heavy = /\W/) and last
601235.17ms1024314µs foreach (@_);
# spent 314µs making 1024 calls to Exporter::CORE:match, avg 307ns/call
61 }
62348366µs53814µs return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy;
# spent 814µs making 53 calls to Exporter::export, avg 15µs/call
63 local $SIG{__WARN__} =
642951.21ms sub {require Carp; &Carp::carp} if not $SIG{__WARN__};
65 # shortcut for the common case of no type character
662954.76ms *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_;
67}
68
69# Default methods
70
71sub export_fail {
72 my $self = shift;
73 @_;
74}
75
76# Unfortunately, caller(1)[3] "does not work" if the caller is aliased as
77# *name = \&foo. Thus the need to create a lot of identical subroutines
78# Otherwise we could have aliased them to export().
79
80
# spent 116µs (27+89) within Exporter::export_to_level which was called 6 times, avg 19µs/call: # 4 times (17µs+61µs) by XML::LibXML::import at line 209 of XML/LibXML.pm, avg 19µs/call # 2 times (10µs+28µs) by JSON::import at line 111 of JSON.pm, avg 19µs/call
sub export_to_level {
81636µs12829µs goto &{as_heavy()};
# spent 740µs making 6 calls to Exporter::Heavy::heavy_export_to_level, avg 123µs/call # spent 89µs making 6 calls to Exporter::as_heavy, avg 15µs/call
82}
83
84
# spent 37µs (7+30) within Exporter::export_tags which was called: # once (7µs+30µs) by parent::import at line 72 of File/Temp.pm
sub export_tags {
8518µs253µs goto &{as_heavy()};
# spent 30µs making 1 call to Exporter::as_heavy # spent 23µs making 1 call to Exporter::Heavy::heavy_export_tags
86}
87
88
# spent 3.61ms (6µs+3.60) within Exporter::export_ok_tags which was called: # once (6µs+3.60ms) by DBI::BEGIN@173 at line 276 of DBI.pm
sub export_ok_tags {
8918µs23.64ms goto &{as_heavy()};
# spent 3.60ms making 1 call to Exporter::as_heavy # spent 38µs making 1 call to Exporter::Heavy::heavy_export_ok_tags
90}
91
92sub require_version {
93 goto &{as_heavy()};
94}
95
9616µs1;
97__END__
 
# spent 680µs within Exporter::CORE:match which was called 1717 times, avg 396ns/call: # 1024 times (314µs+0s) by Exporter::import at line 60, avg 307ns/call # 693 times (365µs+0s) by Exporter::import at line 57, avg 527ns/call
sub Exporter::CORE:match; # opcode
# spent 502µs within Exporter::CORE:subst which was called 1578 times, avg 318ns/call: # 1509 times (281µs+0s) by Exporter::import at line 49, avg 186ns/call # 69 times (221µs+0s) by Exporter::as_heavy at line 20, avg 3µs/call
sub Exporter::CORE:subst; # opcode