Filename | /usr/lib64/perl5/5.16.0/Exporter.pm |
Statements | Executed 3631 statements in 117ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
228 | 226 | 83 | 102ms | 136ms | import | Exporter::
51 | 3 | 1 | 11.5ms | 12.8ms | as_heavy | Exporter::
1088 | 2 | 1 | 3.89ms | 3.89ms | CORE:subst (opcode) | Exporter::
810 | 2 | 1 | 3.00ms | 3.00ms | CORE:match (opcode) | Exporter::
46 | 2 | 2 | 1.35ms | 13.6ms | export | Exporter::
4 | 2 | 2 | 126µs | 460µs | export_to_level | Exporter::
1 | 1 | 1 | 44µs | 198µs | export_tags | Exporter::
0 | 0 | 0 | 0s | 0s | __ANON__[:64] | Exporter::
0 | 0 | 0 | 0s | 0s | export_fail | Exporter::
0 | 0 | 0 | 0s | 0s | export_ok_tags | Exporter::
0 | 0 | 0 | 0s | 0s | require_version | Exporter::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | package Exporter; | ||||
2 | |||||
3 | 1 | 58µs | require 5.006; | ||
4 | |||||
5 | # Be lean. | ||||
6 | #use strict; | ||||
7 | #no strict 'refs'; | ||||
8 | |||||
9 | 1 | 2µs | our $Debug = 0; | ||
10 | 1 | 1µs | our $ExportLevel = 0; | ||
11 | 1 | 2µs | our $Verbose ||= 0; | ||
12 | 1 | 4µs | our $VERSION = '5.66'; | ||
13 | 1 | 1µs | our (%Cache); | ||
14 | |||||
15 | # spent 12.8ms (11.5+1.24) within Exporter::as_heavy which was called 51 times, avg 250µs/call:
# 46 times (11.1ms+1.14ms) by Exporter::export at line 25, avg 267µs/call
# 4 times (256µs+77µs) by Exporter::export_to_level at line 81, avg 83µs/call
# once (132µs+22µs) by Exporter::export_tags at line 85 | ||||
16 | 51 | 722µs | 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 | ||||
19 | 51 | 893µs | my $c = (caller(1))[3]; | ||
20 | 51 | 1.58ms | 51 | 801µs | $c =~ s/.*:://; # spent 801µs making 51 calls to Exporter::CORE:subst, avg 16µs/call |
21 | 51 | 1.33ms | \&{"Exporter::Heavy::heavy_$c"}; | ||
22 | } | ||||
23 | |||||
24 | # spent 13.6ms (1.35+12.3) within Exporter::export which was called 46 times, avg 296µs/call:
# 42 times (1.25ms+12.1ms) by Exporter::import at line 62, avg 317µs/call
# 4 times (99µs+201µs) by Exporter::Heavy::heavy_export_to_level at line 214 of Exporter/Heavy.pm, avg 75µs/call | ||||
25 | 46 | 1.57ms | 92 | 30.9ms | goto &{as_heavy()}; # spent 18.7ms making 46 calls to Exporter::Heavy::heavy_export, avg 405µs/call
# spent 12.3ms making 46 calls to Exporter::as_heavy, avg 267µs/call |
26 | } | ||||
27 | |||||
28 | # spent 136ms (102+33.8) within Exporter::import which was called 228 times, avg 596µs/call:
# 3 times (773µs+47µs) by File::Glob::import at line 47 of File/Glob.pm, avg 273µs/call
# once (36.6ms+386µs) by Fork::Queue::BEGIN@8 at line 8 of webmerge/scripts/modules/Fork/Queue.pm
# once (9.11ms+2.29ms) by POSIX::import at line 30 of POSIX.pm
# once (361µs+9.62ms) by main::BEGIN@16 at line 16 of webmerge/scripts/webmerge.pl
# once (2.31ms+230µs) by RTP::Webmerge::IO::BEGIN@38 at line 38 of webmerge/scripts/modules/RTP/Webmerge/IO.pm
# once (2.01ms+142µs) by File::Temp::BEGIN@146 at line 146 of File/Temp.pm
# once (1.16ms+100µs) by POSIX::BEGIN@11 at line 11 of POSIX.pm
# once (1.06ms+65µs) by IO::AtomicFile::BEGIN@9 at line 148 of IO/File.pm
# once (938µs+74µs) by XML::LibXML::SAX::BEGIN@23 at line 23 of XML/LibXML/SAX.pm
# once (907µs+80µs) by IO::AtomicFile::BEGIN@9 at line 9 of IO/AtomicFile.pm
# once (344µs+555µs) by Getopt::Long::import at line 113 of Getopt/Long.pm
# once (312µs+462µs) by RTP::Webmerge::Merge::JS::BEGIN@41 at line 41 of webmerge/scripts/modules/RTP/Webmerge/Merge/JS.pm
# once (120µs+651µs) by RTP::Webmerge::Optimize::GZ::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/Optimize/GZ.pm
# once (696µs+63µs) by Pod::Text::BEGIN@32 at line 32 of Pod/Text.pm
# once (120µs+617µs) by RTP::Webmerge::Optimize::MNG::BEGIN@33 at line 33 of webmerge/scripts/modules/RTP/Webmerge/Optimize/MNG.pm
# once (118µs+613µs) by RTP::Webmerge::Optimize::ZIP::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/Optimize/ZIP.pm
# once (134µs+575µs) by OCBNET::CSS::Parser::Selectors::BEGIN@29 at line 29 of webmerge/scripts/modules/OCBNET/CSS/Parser/Selectors.pm
# once (117µs+592µs) by RTP::Webmerge::Optimize::PNG::BEGIN@34 at line 34 of webmerge/scripts/modules/RTP/Webmerge/Optimize/PNG.pm
# once (134µs+569µs) by OCBNET::Spritesets::CSS::Collection::BEGIN@15 at line 15 of webmerge/scripts/modules/OCBNET/Spritesets/CSS/Collection.pm
# once (641µs+59µs) by OCBNET::Spritesets::Canvas::Layout::BEGIN@31 at line 31 of webmerge/scripts/modules/OCBNET/Spritesets/Canvas/Layout.pm
# once (130µs+563µs) by RTP::Webmerge::Merge::CSS::BEGIN@41 at line 41 of webmerge/scripts/modules/RTP/Webmerge/Merge/CSS.pm
# once (130µs+553µs) by RTP::Webmerge::Optimize::TXT::BEGIN@72 at line 72 of webmerge/scripts/modules/RTP/Webmerge/Optimize/TXT.pm
# once (116µs+567µs) by RTP::Webmerge::Optimize::GIF::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/Optimize/GIF.pm
# once (148µs+534µs) by OCBNET::CSS::Parser::Colors::BEGIN@204 at line 204 of webmerge/scripts/modules/OCBNET/CSS/Parser/Colors.pm
# once (114µs+553µs) by RTP::Webmerge::Optimize::JPG::BEGIN@30 at line 30 of webmerge/scripts/modules/RTP/Webmerge/Optimize/JPG.pm
# once (239µs+389µs) by OCBNET::CSS::Parser::CSS::BEGIN@30 at line 30 of webmerge/scripts/modules/OCBNET/CSS/Parser/CSS.pm
# once (121µs+495µs) by RTP::Webmerge::Process::JS::BEGIN@25 at line 25 of webmerge/scripts/modules/RTP/Webmerge/Process/JS.pm
# once (594µs+10µs) by main::BEGIN@35 at line 35 of webmerge/scripts/webmerge.pl
# once (101µs+500µs) by RTP::Webmerge::Merge::JS::BEGIN@43 at line 43 of webmerge/scripts/modules/RTP/Webmerge/Merge/JS.pm
# once (124µs+471µs) by RTP::Webmerge::Compile::JS::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/Compile/JS.pm
# once (108µs+482µs) by OCBNET::Spritesets::CSS::Parser::BEGIN@40 at line 40 of webmerge/scripts/modules/OCBNET/Spritesets/CSS/Parser.pm
# once (133µs+456µs) by OCBNET::Spritesets::CSS::Block::BEGIN@23 at line 23 of webmerge/scripts/modules/OCBNET/Spritesets/CSS/Block.pm
# once (209µs+377µs) by RTP::Webmerge::IO::CSS::BEGIN@179 at line 179 of webmerge/scripts/modules/RTP/Webmerge/IO/CSS.pm
# once (123µs+460µs) by RTP::Webmerge::Merge::JS::BEGIN@42 at line 42 of webmerge/scripts/modules/RTP/Webmerge/Merge/JS.pm
# once (208µs+366µs) by OCBNET::Spritesets::CSS::Parser::BEGIN@38 at line 38 of webmerge/scripts/modules/OCBNET/Spritesets/CSS/Parser.pm
# once (104µs+462µs) by RTP::Webmerge::Merge::CSS::BEGIN@42 at line 42 of webmerge/scripts/modules/RTP/Webmerge/Merge/CSS.pm
# once (176µs+389µs) by RTP::Webmerge::Fingerprint::BEGIN@26 at line 26 of webmerge/scripts/modules/RTP/Webmerge/Fingerprint.pm
# once (133µs+424µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@314 at line 314 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Inlinedata.pm
# once (163µs+371µs) by RTP::Webmerge::Merge::JS::BEGIN@70 at line 70 of webmerge/scripts/modules/RTP/Webmerge/Merge/JS.pm
# once (115µs+419µs) by RTP::Webmerge::Include::JS::BEGIN@25 at line 25 of webmerge/scripts/modules/RTP/Webmerge/Include/JS.pm
# once (120µs+412µs) by OCBNET::CSS::Parser::CSS::BEGIN@29 at line 29 of webmerge/scripts/modules/OCBNET/CSS/Parser/CSS.pm
# once (98µs+429µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@42 at line 42 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Inlinedata.pm
# once (131µs+391µs) by RTP::Webmerge::Process::CSS::SCSS::BEGIN@69 at line 69 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/SCSS.pm
# once (99µs+419µs) by RTP::Webmerge::Merge::BEGIN@53 at line 53 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (470µs+46µs) by IPC::Run3::BEGIN@55 at line 55 of IPC/Run3.pm
# once (133µs+379µs) by RTP::Webmerge::Merge::CSS::BEGIN@58 at line 58 of webmerge/scripts/modules/RTP/Webmerge/Merge/CSS.pm
# once (127µs+383µs) by RTP::Webmerge::Compile::CSS::BEGIN@41 at line 41 of webmerge/scripts/modules/RTP/Webmerge/Compile/CSS.pm
# once (454µs+37µs) by RTP::Webmerge::Path::BEGIN@43 at line 43 of webmerge/scripts/modules/RTP/Webmerge/Path.pm
# once (125µs+365µs) by RTP::Webmerge::Process::CSS::Spritesets::BEGIN@140 at line 140 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Spritesets.pm
# once (125µs+355µs) by RTP::Webmerge::Merge::BEGIN@71 at line 71 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (118µs+359µs) by RTP::Webmerge::Embedder::BEGIN@26 at line 26 of webmerge/scripts/modules/RTP/Webmerge/Embedder.pm
# once (129µs+348µs) by RTP::Webmerge::Merge::BEGIN@70 at line 70 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (142µs+334µs) by OCBNET::Spritesets::CSS::Collection::BEGIN@16 at line 16 of webmerge/scripts/modules/OCBNET/Spritesets/CSS/Collection.pm
# once (104µs+357µs) by RTP::Webmerge::HeadInc::BEGIN@34 at line 34 of webmerge/scripts/modules/RTP/Webmerge/HeadInc.pm
# once (425µs+34µs) by FindBin::BEGIN@83 at line 83 of FindBin.pm
# once (102µs+329µs) by OCBNET::Spritesets::CSS::Parser::BEGIN@42 at line 42 of webmerge/scripts/modules/OCBNET/Spritesets/CSS/Parser.pm
# once (405µs+12µs) by File::Temp::BEGIN@143 at line 143 of File/Temp.pm
# once (106µs+310µs) by OCBNET::Spritesets::CSS::Parser::BEGIN@39 at line 39 of webmerge/scripts/modules/OCBNET/Spritesets/CSS/Parser.pm
# once (386µs+30µs) by File::MimeInfo::Magic::BEGIN@7 at line 7 of File/MimeInfo/Magic.pm
# once (384µs+26µs) by OCBNET::Spritesets::Canvas::Layout::BEGIN@231 at line 231 of webmerge/scripts/modules/OCBNET/Spritesets/Canvas/Layout.pm
# once (364µs+30µs) by OCBNET::Spritesets::Canvas::Optimize::BEGIN@28 at line 28 of webmerge/scripts/modules/OCBNET/Spritesets/Canvas/Optimize.pm
# once (353µs+30µs) by RTP::Webmerge::BEGIN@58 at line 58 of webmerge/scripts/modules/RTP/Webmerge.pm
# once (343µs+28µs) by RTP::Webmerge::Merge::BEGIN@32 at line 32 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (341µs+14µs) by main::BEGIN@7 at line 7 of webmerge/scripts/webmerge.pl
# once (339µs+8µs) by RTP::Webmerge::Path::BEGIN@37 at line 37 of webmerge/scripts/modules/RTP/Webmerge/Path.pm
# once (325µs+19µs) by RTP::Webmerge::Checksum::BEGIN@28 at line 28 of webmerge/scripts/modules/RTP/Webmerge/Checksum.pm
# once (300µs+22µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@32 at line 32 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Inlinedata.pm
# once (306µs+15µs) by RTP::Webmerge::Merge::BEGIN@67 at line 67 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (295µs+18µs) by main::BEGIN@28 at line 28 of webmerge/scripts/webmerge.pl
# once (300µs+12µs) by RTP::Webmerge::Compile::JS::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Compile/JS.pm
# once (291µs+19µs) by RTP::Webmerge::Embedder::PHP::BEGIN@20 at line 20 of webmerge/scripts/modules/RTP/Webmerge/Embedder/PHP.pm
# once (291µs+19µs) by IPC::Run3::BEGIN@54 at line 54 of IPC/Run3.pm
# once (287µs+17µs) by RTP::Webmerge::HeadInc::BEGIN@26 at line 26 of webmerge/scripts/modules/RTP/Webmerge/HeadInc.pm
# once (281µs+19µs) by RTP::Webmerge::Path::BEGIN@40 at line 40 of webmerge/scripts/modules/RTP/Webmerge/Path.pm
# once (284µs+15µs) by RTP::Webmerge::Watchdog::BEGIN@12 at line 12 of webmerge/scripts/modules/RTP/Webmerge/Watchdog.pm
# once (285µs+15µs) by RTP::Webmerge::Optimize::JPG::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Optimize/JPG.pm
# once (282µs+14µs) by IO::File::BEGIN@130 at line 130 of IO/File.pm
# once (284µs+10µs) by main::BEGIN@33 at line 33 of webmerge/scripts/webmerge.pl
# once (278µs+14µs) by RTP::Webmerge::Merge::CSS::BEGIN@50 at line 50 of webmerge/scripts/modules/RTP/Webmerge/Merge/CSS.pm
# once (275µs+15µs) by RTP::Webmerge::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge.pm
# once (277µs+10µs) by RTP::Webmerge::Optimize::BEGIN@84 at line 84 of webmerge/scripts/modules/RTP/Webmerge/Optimize.pm
# once (276µs+12µs) by RTP::Webmerge::Optimize::GZ::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Optimize/GZ.pm
# once (271µs+15µs) by Tie::Hash::BEGIN@188 at line 188 of Tie/Hash.pm
# once (273µs+12µs) by RTP::Webmerge::Process::JS::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Process/JS.pm
# once (271µs+13µs) by RTP::Webmerge::Merge::JS::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Merge/JS.pm
# once (268µs+15µs) by RTP::Webmerge::Prepare::BEGIN@28 at line 28 of webmerge/scripts/modules/RTP/Webmerge/Prepare.pm
# once (269µs+14µs) by RTP::Webmerge::Optimize::GIF::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Optimize/GIF.pm
# once (268µs+12µs) by RTP::Webmerge::IO::JS::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/IO/JS.pm
# once (264µs+14µs) by RTP::Webmerge::Checksum::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Checksum.pm
# once (264µs+13µs) by RTP::Webmerge::Optimize::MNG::BEGIN@11 at line 11 of webmerge/scripts/modules/RTP/Webmerge/Optimize/MNG.pm
# once (260µs+17µs) by OCBNET::Spritesets::Container::BEGIN@153 at line 153 of webmerge/scripts/modules/OCBNET/Spritesets/Container.pm
# once (264µs+12µs) by RTP::Webmerge::Checksum::BEGIN@27 at line 27 of webmerge/scripts/modules/RTP/Webmerge/Checksum.pm
# once (261µs+15µs) by RTP::Webmerge::Embedder::PHP::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Embedder/PHP.pm
# once (266µs+10µs) by RTP::Webmerge::Embedder::BEGIN@30 at line 30 of webmerge/scripts/modules/RTP/Webmerge/Embedder.pm
# once (264µs+11µs) by RTP::Webmerge::Merge::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (261µs+14µs) by RTP::Webmerge::Path::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Path.pm
# once (258µs+14µs) by RTP::Webmerge::Embedder::JS::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Embedder/JS.pm
# once (260µs+12µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Inlinedata.pm
# once (259µs+12µs) by FindBin::BEGIN@84 at line 84 of FindBin.pm
# once (258µs+13µs) by Socket::BEGIN@683 at line 683 of Socket.pm
# once (255µs+14µs) by RTP::Webmerge::Compile::CSS::BEGIN@13 at line 13 of webmerge/scripts/modules/RTP/Webmerge/Compile/CSS.pm
# once (253µs+16µs) by IO::File::BEGIN@131 at line 131 of IO/File.pm
# once (256µs+12µs) by RTP::Webmerge::HeadInc::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/HeadInc.pm
# once (256µs+13µs) by RTP::Webmerge::Optimize::TXT::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Optimize/TXT.pm
# once (256µs+12µs) by IO::File::BEGIN@133 at line 133 of IO/File.pm
# once (254µs+14µs) by RTP::Webmerge::Optimize::PNG::BEGIN@11 at line 11 of webmerge/scripts/modules/RTP/Webmerge/Optimize/PNG.pm
# once (255µs+12µs) by RTP::Webmerge::Process::CSS::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS.pm
# once (255µs+12µs) by XML::Simple::BEGIN@41 at line 41 of XML/Simple.pm
# once (255µs+12µs) by IO::Seekable::BEGIN@98 at line 98 of IO/Seekable.pm
# once (252µs+14µs) by RTP::Webmerge::Merge::BEGIN@66 at line 66 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (254µs+12µs) by RTP::Webmerge::Include::JS::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Include/JS.pm
# once (254µs+12µs) by RTP::Webmerge::Merge::BEGIN@36 at line 36 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (253µs+12µs) by RTP::Webmerge::Optimize::BEGIN@11 at line 11 of webmerge/scripts/modules/RTP/Webmerge/Optimize.pm
# once (251µs+13µs) by Data::Dumper::BEGIN@22 at line 22 of Data/Dumper.pm
# once (251µs+13µs) by XML::LibXML::SAX::BEGIN@22 at line 22 of XML/LibXML/SAX.pm
# once (252µs+12µs) by RTP::Webmerge::Process::CSS::Spritesets::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Spritesets.pm
# once (250µs+14µs) by SelectSaver::BEGIN@38 at line 38 of SelectSaver.pm
# once (251µs+13µs) by File::BaseDir::BEGIN@4 at line 4 of File/BaseDir.pm
# once (247µs+17µs) by File::Temp::BEGIN@145 at line 145 of File/Temp.pm
# once (251µs+12µs) by Pod::Parser::BEGIN@206 at line 206 of Pod/Parser.pm
# once (250µs+12µs) by RTP::Webmerge::IO::BEGIN@32 at line 32 of webmerge/scripts/modules/RTP/Webmerge/IO.pm
# once (250µs+12µs) by RTP::Webmerge::Optimize::ZIP::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Optimize/ZIP.pm
# once (247µs+14µs) by RTP::Webmerge::Embedder::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Embedder.pm
# once (248µs+12µs) by Pod::Usage::BEGIN@444 at line 444 of Pod/Usage.pm
# once (246µs+13µs) by IO::Handle::BEGIN@263 at line 263 of IO/Handle.pm
# once (250µs+10µs) by XML::SAX::Exception::BEGIN@13 at line 13 of XML/SAX/Exception.pm
# once (246µs+12µs) by RTP::Webmerge::Merge::CSS::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Merge/CSS.pm
# once (246µs+12µs) by main::BEGIN@30 at line 30 of webmerge/scripts/webmerge.pl
# once (242µs+15µs) by OCBNET::Spritesets::Sprite::BEGIN@82 at line 82 of webmerge/scripts/modules/OCBNET/Spritesets/Sprite.pm
# once (242µs+13µs) by IO::Scalar::BEGIN@149 at line 149 of IO/Scalar.pm
# once (243µs+12µs) by Graphics::Magick::BEGIN@16 at line 16 of Graphics/Magick.pm
# once (242µs+13µs) by RTP::Webmerge::IO::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/IO.pm
# once (242µs+13µs) by RTP::Webmerge::Prepare::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Prepare.pm
# once (240µs+13µs) by RTP::Webmerge::Fingerprint::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Fingerprint.pm
# once (237µs+16µs) by XML::SAX::BEGIN@17 at line 17 of XML/SAX.pm
# once (242µs+11µs) by Pod::Select::BEGIN@241 at line 241 of Pod/Select.pm
# once (242µs+10µs) by RTP::Webmerge::IO::CSS::BEGIN@10 at line 10 of webmerge/scripts/modules/RTP/Webmerge/IO/CSS.pm
# once (238µs+14µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Inlinedata.pm
# once (239µs+12µs) by RTP::Webmerge::IO::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/IO.pm
# once (239µs+12µs) by FindBin::BEGIN@80 at line 80 of FindBin.pm
# once (238µs+11µs) by XML::LibXML::Element::BEGIN@1488 at line 1488 of XML/LibXML.pm
# once (237µs+13µs) by File::MimeInfo::Magic::BEGIN@5 at line 5 of File/MimeInfo/Magic.pm
# once (237µs+12µs) by RTP::Webmerge::Include::CSS::BEGIN@8 at line 8 of webmerge/scripts/modules/RTP/Webmerge/Include/CSS.pm
# once (236µs+12µs) by RTP::Webmerge::Merge::JS::BEGIN@62 at line 62 of webmerge/scripts/modules/RTP/Webmerge/Merge/JS.pm
# once (235µs+13µs) by OCBNET::Spritesets::Canvas::BEGIN@18 at line 18 of webmerge/scripts/modules/OCBNET/Spritesets/Canvas.pm
# once (224µs+22µs) by main::BEGIN@147 at line 147 of webmerge/scripts/webmerge.pl
# once (234µs+12µs) by File::MimeInfo::BEGIN@4 at line 4 of File/MimeInfo.pm
# once (237µs+9µs) by XML::LibXML::XPathContext::BEGIN@15 at line 15 of XML/LibXML/XPathContext.pm
# once (234µs+9µs) by XML::LibXML::BEGIN@19 at line 19 of XML/LibXML.pm
# once (230µs+12µs) by RTP::Webmerge::Include::JS::BEGIN@26 at line 26 of webmerge/scripts/modules/RTP/Webmerge/Include/JS.pm
# once (229µs+11µs) by IO::BEGIN@6 at line 6 of IO.pm
# once (228µs+13µs) by RTP::Webmerge::Compile::JS::BEGIN@26 at line 26 of webmerge/scripts/modules/RTP/Webmerge/Compile/JS.pm
# once (226µs+14µs) by RTP::Webmerge::BEGIN@15 at line 15 of webmerge/scripts/modules/RTP/Webmerge.pm
# once (228µs+9µs) by XML::LibXML::Error::BEGIN@20 at line 20 of XML/LibXML/Error.pm
# once (228µs+8µs) by RTP::Webmerge::IO::CSS::BEGIN@40 at line 40 of webmerge/scripts/modules/RTP/Webmerge/IO/CSS.pm
# once (231µs+6µs) by RTP::Webmerge::Process::CSS::Spritesets::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Spritesets.pm
# once (226µs+11µs) by OCBNET::Spritesets::CSS::Parser::BEGIN@41 at line 41 of webmerge/scripts/modules/OCBNET/Spritesets/CSS/Parser.pm
# once (222µs+11µs) by IO::Handle::BEGIN@264 at line 264 of IO/Handle.pm
# once (222µs+11µs) by RTP::Webmerge::Merge::BEGIN@37 at line 37 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (222µs+10µs) by main::BEGIN@29 at line 29 of webmerge/scripts/webmerge.pl
# once (223µs+8µs) by RTP::Webmerge::Optimize::BEGIN@87 at line 87 of webmerge/scripts/modules/RTP/Webmerge/Optimize.pm
# once (222µs+8µs) by XML::LibXML::Error::BEGIN@257 at line 257 of XML/LibXML/Error.pm
# once (164µs+66µs) by RTP::Webmerge::Merge::BEGIN@47 at line 47 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (222µs+7µs) by RTP::Webmerge::Optimize::BEGIN@90 at line 90 of webmerge/scripts/modules/RTP/Webmerge/Optimize.pm
# once (214µs+13µs) by RTP::Webmerge::Fingerprint::BEGIN@64 at line 64 of webmerge/scripts/modules/RTP/Webmerge/Fingerprint.pm
# once (217µs+9µs) by main::BEGIN@31 at line 31 of webmerge/scripts/webmerge.pl
# once (216µs+9µs) by OCBNET::Spritesets::Canvas::BEGIN@19 at line 19 of webmerge/scripts/modules/OCBNET/Spritesets/Canvas.pm
# once (213µs+10µs) by RTP::Webmerge::IO::CSS::BEGIN@37 at line 37 of webmerge/scripts/modules/RTP/Webmerge/IO/CSS.pm
# once (213µs+8µs) by main::BEGIN@34 at line 34 of webmerge/scripts/webmerge.pl
# once (208µs+12µs) by SelectSaver::BEGIN@39 at line 39 of SelectSaver.pm
# once (207µs+10µs) by RTP::Webmerge::Prepare::BEGIN@26 at line 26 of webmerge/scripts/modules/RTP/Webmerge/Prepare.pm
# once (204µs+11µs) by Encode::BEGIN@48 at line 48 of Encode.pm
# once (200µs+14µs) by IO::Seekable::BEGIN@104 at line 104 of IO/Seekable.pm
# once (202µs+8µs) by RTP::Webmerge::Checksum::BEGIN@26 at line 26 of webmerge/scripts/modules/RTP/Webmerge/Checksum.pm
# once (196µs+9µs) by RTP::Webmerge::Fingerprint::BEGIN@61 at line 61 of webmerge/scripts/modules/RTP/Webmerge/Fingerprint.pm
# once (196µs+8µs) by Pod::Text::BEGIN@31 at line 31 of Pod/Text.pm
# once (194µs+8µs) by main::BEGIN@37 at line 37 of webmerge/scripts/webmerge.pl
# once (189µs+10µs) by RTP::Webmerge::IO::JS::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/IO/JS.pm
# once (190µs+8µs) by OCBNET::Spritesets::Canvas::BEGIN@21 at line 21 of webmerge/scripts/modules/OCBNET/Spritesets/Canvas.pm
# once (190µs+8µs) by RTP::Webmerge::Embedder::JS::BEGIN@23 at line 23 of webmerge/scripts/modules/RTP/Webmerge/Embedder/JS.pm
# once (189µs+9µs) by main::BEGIN@36 at line 36 of webmerge/scripts/webmerge.pl
# once (189µs+8µs) by main::BEGIN@235 at line 98 of XML/Simple.pm
# once (182µs+12µs) by File::Temp::BEGIN@147 at line 147 of File/Temp.pm
# once (181µs+10µs) by File::Temp::Dir::BEGIN@2405 at line 2405 of File/Temp.pm
# once (183µs+7µs) by RTP::Webmerge::Watchdog::BEGIN@36 at line 36 of webmerge/scripts/modules/RTP/Webmerge/Watchdog.pm
# once (181µs+8µs) by OCBNET::Spritesets::Canvas::BEGIN@20 at line 20 of webmerge/scripts/modules/OCBNET/Spritesets/Canvas.pm
# once (177µs+8µs) by RTP::Webmerge::Watchdog::BEGIN@33 at line 33 of webmerge/scripts/modules/RTP/Webmerge/Watchdog.pm
# once (177µs+8µs) by main::BEGIN@32 at line 32 of webmerge/scripts/webmerge.pl
# once (176µs+7µs) by RTP::Webmerge::Process::CSS::Spritesets::BEGIN@35 at line 35 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Spritesets.pm
# once (173µs+9µs) by RTP::Webmerge::Embedder::BEGIN@27 at line 27 of webmerge/scripts/modules/RTP/Webmerge/Embedder.pm
# once (174µs+7µs) by RTP::Webmerge::Embedder::PHP::BEGIN@23 at line 23 of webmerge/scripts/modules/RTP/Webmerge/Embedder/PHP.pm
# once (168µs+8µs) by RTP::Webmerge::Process::CSS::Spritesets::BEGIN@26 at line 26 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Spritesets.pm
# once (168µs+7µs) by XML::SAX::BEGIN@15 at line 15 of XML/SAX.pm
# once (168µs+6µs) by RTP::Webmerge::Merge::BEGIN@35 at line 35 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (170µs+3µs) by RTP::Webmerge::Watchdog::BEGIN@39 at line 39 of webmerge/scripts/modules/RTP/Webmerge/Watchdog.pm
# once (166µs+6µs) by RTP::Webmerge::Include::CSS::BEGIN@25 at line 25 of webmerge/scripts/modules/RTP/Webmerge/Include/CSS.pm
# once (162µs+7µs) by OCBNET::Spritesets::CSS::Parser::BEGIN@25 at line 25 of webmerge/scripts/modules/OCBNET/Spritesets/CSS/Parser.pm
# once (160µs+7µs) by File::Path::BEGIN@6 at line 6 of File/Path.pm
# once (156µs+5µs) by XML::SAX::ParserFactory::BEGIN@10 at line 10 of XML/SAX/ParserFactory.pm
# once (154µs+5µs) by RTP::Webmerge::Optimize::TXT::BEGIN@75 at line 75 of webmerge/scripts/modules/RTP/Webmerge/Optimize/TXT.pm
# once (151µs+8µs) by RTP::Webmerge::Merge::BEGIN@58 at line 58 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (154µs+5µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@44 at line 44 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Inlinedata.pm
# once (155µs+4µs) by RTP::Webmerge::HeadInc::BEGIN@28 at line 28 of webmerge/scripts/modules/RTP/Webmerge/HeadInc.pm
# once (149µs+5µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@40 at line 40 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Inlinedata.pm
# once (149µs+4µs) by RTP::Webmerge::HeadInc::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/HeadInc.pm
# once (148µs+0s) by Getopt::Long::BEGIN@25 at line 25 of Getopt/Long.pm
# once (138µs+3µs) by RTP::Webmerge::Checksum::BEGIN@29 at line 29 of webmerge/scripts/modules/RTP/Webmerge/Checksum.pm
# once (133µs+6µs) by RTP::Webmerge::BEGIN@21 at line 21 of webmerge/scripts/modules/RTP/Webmerge.pm
# once (139µs+0s) by JSON::XS::BEGIN@121 at line 121 of JSON/XS.pm
# once (129µs+6µs) by File::MimeInfo::BEGIN@5 at line 5 of File/MimeInfo.pm
# once (131µs+3µs) by File::MimeInfo::BEGIN@7 at line 7 of File/MimeInfo.pm
# once (129µs+0s) by RTP::Webmerge::Merge::BEGIN@44 at line 44 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (129µs+0s) by Pod::Select::BEGIN@242 at line 242 of Pod/Select.pm
# once (124µs+4µs) by File::MimeInfo::Magic::BEGIN@6 at line 6 of File/MimeInfo/Magic.pm
# once (120µs+0s) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@26 at line 26 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Inlinedata.pm
# once (116µs+0s) by Cwd::BEGIN@171 at line 171 of Cwd.pm
# once (114µs+0s) by RTP::Webmerge::Merge::BEGIN@68 at line 68 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (113µs+0s) by RTP::Webmerge::Merge::BEGIN@69 at line 69 of webmerge/scripts/modules/RTP/Webmerge/Merge.pm
# once (113µs+0s) by File::Temp::BEGIN@148 at line 148 of File/Temp.pm
# once (113µs+0s) by XML::LibXML::BEGIN@27 at line 27 of XML/LibXML.pm
# once (110µs+0s) by IO::Scalar::BEGIN@152 at line 152 of IO/Scalar.pm
# once (107µs+0s) by IPC::Run3::BEGIN@36 at line 36 of IPC/Run3.pm
# once (106µs+0s) by IO::WrapTie::BEGIN@10 at line 10 of IO/WrapTie.pm
# once (100µs+0s) by IO::WrapTie::Master::BEGIN@36 at line 36 of IO/WrapTie.pm
# once (89µs+0s) by Pod::Usage::BEGIN@446 at line 446 of Pod/Usage.pm
# once (86µs+0s) by Pod::Parser::BEGIN@207 at line 207 of Pod/Parser.pm | ||||
29 | 228 | 778µs | my $pkg = shift; | ||
30 | 228 | 1.31ms | my $callpkg = caller($ExportLevel); | ||
31 | |||||
32 | 228 | 508µs | if ($pkg eq "Exporter" and @_ and $_[0] eq "import") { | ||
33 | *{$callpkg."::import"} = \&import; | ||||
34 | return; | ||||
35 | } | ||||
36 | |||||
37 | # We *need* to treat @{"$pkg\::EXPORT_FAIL"} since Carp uses it :-( | ||||
38 | 228 | 2.69ms | 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. | ||||
41 | 228 | 2.17ms | my $fail = ${$pkg . '::'}{EXPORT_FAIL} && \@{"$pkg\::EXPORT_FAIL"}; | ||
42 | 228 | 710µs | return export $pkg, $callpkg, @_ | ||
43 | if $Verbose or $Debug or $fail && @$fail > 1; | ||||
44 | 228 | 1.09ms | my $export_cache = ($Cache{$pkg} ||= {}); | ||
45 | 228 | 1.89ms | my $args = @_ or @_ = @$exports; | ||
46 | |||||
47 | 228 | 420µs | if ($args and not %$export_cache) { | ||
48 | s/^&//, $export_cache->{$_} = 1 | ||||
49 | 33 | 18.8ms | 1037 | 3.09ms | foreach (@$exports, @{"$pkg\::EXPORT_OK"}); # spent 3.09ms making 1037 calls to Exporter::CORE:subst, avg 3µs/call |
50 | } | ||||
51 | 228 | 232µ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. | ||||
54 | 228 | 895µ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 | ||||
57 | 168 | 10.7ms | 402 | 1.88ms | foreach (@_); # spent 1.88ms making 402 calls to Exporter::CORE:match, avg 5µs/call |
58 | } else { | ||||
59 | ($heavy = /\W/) and last | ||||
60 | 60 | 37.6ms | 408 | 1.12ms | foreach (@_); # spent 1.12ms making 408 calls to Exporter::CORE:match, avg 3µs/call |
61 | } | ||||
62 | 228 | 1.84ms | 42 | 13.3ms | return export $pkg, $callpkg, ($args ? @_ : ()) if $heavy; # spent 13.3ms making 42 calls to Exporter::export, avg 317µs/call |
63 | local $SIG{__WARN__} = | ||||
64 | 186 | 5.77ms | sub {require Carp; &Carp::carp} if not $SIG{__WARN__}; | ||
65 | # shortcut for the common case of no type character | ||||
66 | 186 | 23.5ms | *{"$callpkg\::$_"} = \&{"$pkg\::$_"} foreach @_; | ||
67 | } | ||||
68 | |||||
69 | # Default methods | ||||
70 | |||||
71 | sub 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 460µs (126+334) within Exporter::export_to_level which was called 4 times, avg 115µs/call:
# 3 times (92µs+252µs) by XML::LibXML::import at line 207 of XML/LibXML.pm, avg 115µs/call
# once (34µs+82µs) by JSON::import at line 111 of JSON.pm | ||||
81 | 4 | 153µs | 8 | 5.18ms | goto &{as_heavy()}; # spent 4.85ms making 4 calls to Exporter::Heavy::heavy_export_to_level, avg 1.21ms/call
# spent 334µs making 4 calls to Exporter::as_heavy, avg 83µs/call |
82 | } | ||||
83 | |||||
84 | # spent 198µs (44+154) within Exporter::export_tags which was called:
# once (44µs+154µs) by IPC::Run3::BEGIN@55 at line 202 of File/Temp.pm | ||||
85 | 1 | 46µs | 2 | 287µs | goto &{as_heavy()}; # spent 154µs making 1 call to Exporter::as_heavy
# spent 134µs making 1 call to Exporter::Heavy::heavy_export_tags |
86 | } | ||||
87 | |||||
88 | sub export_ok_tags { | ||||
89 | goto &{as_heavy()}; | ||||
90 | } | ||||
91 | |||||
92 | sub require_version { | ||||
93 | goto &{as_heavy()}; | ||||
94 | } | ||||
95 | |||||
96 | 1 | 19µs | 1; | ||
97 | __END__ | ||||
sub Exporter::CORE:match; # opcode | |||||
sub Exporter::CORE:subst; # opcode |