← Index
NYTProf Performance Profile   « line view »
For webmerge/scripts/webmerge.pl
  Run on Mon Oct 7 02:42:42 2013
Reported on Mon Oct 7 03:03:24 2013

Filename/usr/lib64/perl5/vendor_perl/5.16.0/File/MimeInfo/Magic.pm
StatementsExecuted 619845 statements in 11.2s
Subroutines
Calls P F Exclusive
Time
Inclusive
Time
Subroutine
62936115.99s7.74sFile::MimeInfo::Magic::::_check_ruleFile::MimeInfo::Magic::_check_rule
2564212.51s10.8sFile::MimeInfo::Magic::::_magicFile::MimeInfo::Magic::_magic
6293611734ms734msFile::MimeInfo::Magic::::CORE:readFile::MimeInfo::Magic::CORE:read (opcode)
6455631449ms449msFile::MimeInfo::Magic::::CORE:regcompFile::MimeInfo::Magic::CORE:regcomp (opcode)
256011386ms12.3sFile::MimeInfo::Magic::::mimetypeFile::MimeInfo::Magic::mimetype
6293611382ms382msFile::MimeInfo::Magic::::CORE:seekFile::MimeInfo::Magic::CORE:seek (opcode)
111232ms342msFile::MimeInfo::Magic::::_hash_magicFile::MimeInfo::Magic::_hash_magic
6490131226ms226msFile::MimeInfo::Magic::::CORE:matchFile::MimeInfo::Magic::CORE:match (opcode)
256121140ms140msFile::MimeInfo::Magic::::CORE:openFile::MimeInfo::Magic::CORE:open (opcode)
25601155.6ms55.6msFile::MimeInfo::Magic::::CORE:ftsizeFile::MimeInfo::Magic::CORE:ftsize (opcode)
34446137.4ms37.4msFile::MimeInfo::Magic::::CORE:unpackFile::MimeInfo::Magic::CORE:unpack (opcode)
25601113.4ms13.4msFile::MimeInfo::Magic::::CORE:ftereadFile::MimeInfo::Magic::CORE:fteread (opcode)
25612110.3ms10.3msFile::MimeInfo::Magic::::CORE:binmodeFile::MimeInfo::Magic::CORE:binmode (opcode)
810119.42ms9.42msFile::MimeInfo::Magic::::CORE:substFile::MimeInfo::Magic::CORE:subst (opcode)
810119.41ms9.41msFile::MimeInfo::Magic::::CORE:qrFile::MimeInfo::Magic::CORE:qr (opcode)
208117.00ms7.00msFile::MimeInfo::Magic::::_find_branchFile::MimeInfo::Magic::_find_branch
1115.80ms7.59msFile::MimeInfo::Magic::::BEGIN@7File::MimeInfo::Magic::BEGIN@7
1157315.52ms5.52msFile::MimeInfo::Magic::::CORE:readlineFile::MimeInfo::Magic::CORE:readline (opcode)
15114.11ms4.32msFile::MimeInfo::Magic::::_mask_regexFile::MimeInfo::Magic::_mask_regex
111655µs655µsFile::MimeInfo::Magic::::CORE:sortFile::MimeInfo::Magic::CORE:sort (opcode)
111260µs260µsFile::MimeInfo::Magic::::BEGIN@11File::MimeInfo::Magic::BEGIN@11
111249µs345msFile::MimeInfo::Magic::::_rehashFile::MimeInfo::Magic::_rehash
4511202µs202µsFile::MimeInfo::Magic::::CORE:rcatlineFile::MimeInfo::Magic::CORE:rcatline (opcode)
521150µs150µsFile::MimeInfo::Magic::::CORE:closeFile::MimeInfo::Magic::CORE:close (opcode)
11188µs192µsFile::MimeInfo::Magic::::BEGIN@4File::MimeInfo::Magic::BEGIN@4
82166µs66µsFile::MimeInfo::Magic::::CORE:packFile::MimeInfo::Magic::CORE:pack (opcode)
11159µs309µsFile::MimeInfo::Magic::::BEGIN@5File::MimeInfo::Magic::BEGIN@5
11155µs183µsFile::MimeInfo::Magic::::BEGIN@6File::MimeInfo::Magic::BEGIN@6
11155µs129µsFile::MimeInfo::Magic::::BEGIN@12File::MimeInfo::Magic::BEGIN@12
0000s0sFile::MimeInfo::Magic::::_escape_bytesFile::MimeInfo::Magic::_escape_bytes
0000s0sFile::MimeInfo::Magic::::magicFile::MimeInfo::Magic::magic
0000s0sFile::MimeInfo::Magic::::rehashFile::MimeInfo::Magic::rehash
Call graph for these subroutines as a Graphviz dot language file.
Line State
ments
Time
on line
Calls Time
in subs
Code
1
2package File::MimeInfo::Magic;
3
42203µs2297µs
# spent 192µs (88+104) within File::MimeInfo::Magic::BEGIN@4 which was called: # once (88µs+104µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@32 at line 4
use strict;
# spent 192µs making 1 call to File::MimeInfo::Magic::BEGIN@4 # spent 104µs making 1 call to strict::import
52168µs2558µs
# spent 309µs (59+250) within File::MimeInfo::Magic::BEGIN@5 which was called: # once (59µs+250µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@32 at line 5
use Carp;
# spent 309µs making 1 call to File::MimeInfo::Magic::BEGIN@5 # spent 250µs making 1 call to Exporter::import
62158µs2311µs
# spent 183µs (55+128) within File::MimeInfo::Magic::BEGIN@6 which was called: # once (55µs+128µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@32 at line 6
use Fcntl 'SEEK_SET';
# spent 183µs making 1 call to File::MimeInfo::Magic::BEGIN@6 # spent 128µs making 1 call to Exporter::import
72770µs28.01ms
# spent 7.59ms (5.80+1.79) within File::MimeInfo::Magic::BEGIN@7 which was called: # once (5.80ms+1.79ms) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@32 at line 7
use File::BaseDir qw/data_files/;
# spent 7.59ms making 1 call to File::MimeInfo::Magic::BEGIN@7 # spent 415µs making 1 call to Exporter::import
81489µsrequire File::MimeInfo;
913µsrequire Exporter;
10
11
# spent 260µs within File::MimeInfo::Magic::BEGIN@11 which was called: # once (260µs+0s) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@32 at line 16
BEGIN {
122271µs2203µs
# spent 129µs (55+74) within File::MimeInfo::Magic::BEGIN@12 which was called: # once (55µs+74µs) by RTP::Webmerge::Process::CSS::Inlinedata::BEGIN@32 at line 12
no strict "refs";
# spent 129µs making 1 call to File::MimeInfo::Magic::BEGIN@12 # spent 74µs making 1 call to strict::unimport
13127µs for (qw/extensions describe globs inodetype default/) {
145235µs *{$_} = \&{"File::MimeInfo::$_"};
15 }
1617.94ms1260µs}
# spent 260µs making 1 call to File::MimeInfo::Magic::BEGIN@11
17
18132µsour @ISA = qw(Exporter File::MimeInfo);
1915µsour @EXPORT = qw(mimetype);
2017µsour @EXPORT_OK = qw(extensions describe globs inodetype magic);
2112µsour $VERSION = '0.15';
221700nsour $DEBUG;
23
2411µsour $_hashed = 0;
2512µsour (@magic_80, @magic, $max_buffer);
26# @magic_80 and @magic are used to store the parse tree of magic data
27# @magic_80 contains magic rules with priority 80 and higher, @magic the rest
28# $max_buffer contains the maximum number of chars to be buffered from a non-seekable
29# filehandle in order to do magic mimetyping
30
31
# spent 12.3s (386ms+11.9) within File::MimeInfo::Magic::mimetype which was called 2560 times, avg 4.79ms/call: # 2560 times (386ms+11.9s) by RTP::Webmerge::Process::CSS::Inlinedata::inline_url at line 294 of webmerge/scripts/modules/RTP/Webmerge/Process/CSS/Inlinedata.pm, avg 4.79ms/call
sub mimetype {
32256010.5ms my $file = pop;
3325603.65ms croak 'subroutine "mimetype" needs a filename as argument' unless defined $file;
34
3525603.69ms return magic($file) || default($file) if ref $file;
362560136ms512069.0ms return &File::MimeInfo::mimetype($file) unless -s $file and -r _;
# spent 55.6ms making 2560 calls to File::MimeInfo::Magic::CORE:ftsize, avg 22µs/call # spent 13.4ms making 2560 calls to File::MimeInfo::Magic::CORE:fteread, avg 5µs/call
37
3825605.76ms my ($mimet, $fh);
39256034.5ms2560190ms return $mimet if $mimet = inodetype($file);
# spent 190ms making 2560 calls to File::MimeInfo::inodetype, avg 74µs/call
40
41256044.2ms256010.6s ($mimet, $fh) = _magic($file, \@magic_80); # high priority rules
# spent 10.6s making 2560 calls to File::MimeInfo::Magic::_magic, avg 4.12ms/call
4225602.73ms return $mimet if $mimet;
43
442560200ms2560866ms return $mimet if $mimet = globs($file);
# spent 866ms making 2560 calls to File::MimeInfo::globs, avg 338µs/call
45
464373µs4199ms ($mimet, $fh) = _magic($fh, \@magic); # lower priority rules
# spent 199ms making 4 calls to File::MimeInfo::Magic::_magic, avg 49.7ms/call
474248µs4123µs close $fh unless ref $file;
# spent 123µs making 4 calls to File::MimeInfo::Magic::CORE:close, avg 31µs/call
48
494148µs return $mimet if $mimet;
50 return default($file);
51}
52
53sub magic {
54 my $file = pop;
55 croak 'subroutine "magic" needs a filename as argument' unless defined $file;
56 return undef unless ref($file) || -s $file;
57 print STDERR "> Checking all magic rules\n" if $DEBUG;
58
59 my ($mimet, $fh) = _magic($file, \@magic_80, \@magic);
60 close $fh unless ref $file;
61
62 return $mimet;
63}
64
65
# spent 10.8s (2.51+8.24) within File::MimeInfo::Magic::_magic which was called 2564 times, avg 4.19ms/call: # 2560 times (2.48s+8.08s) by File::MimeInfo::Magic::mimetype at line 41, avg 4.12ms/call # 4 times (36.0ms+163ms) by File::MimeInfo::Magic::mimetype at line 46, avg 49.7ms/call
sub _magic {
66256422.7ms my ($file, @rules) = @_;
6725642.48ms1345ms _rehash() unless $_hashed;
# spent 345ms making 1 call to File::MimeInfo::Magic::_rehash
68
6925642.89ms my $fh;
7025649.84ms unless (ref $file) {
712560231ms2560140ms open $fh, '<', $file || return undef;
# spent 140ms making 2560 calls to File::MimeInfo::Magic::CORE:open, avg 55µs/call
72256067.4ms256010.3ms binmode $fh;
# spent 10.3ms making 2560 calls to File::MimeInfo::Magic::CORE:binmode, avg 4µs/call
73 }
74410µs else { $fh = $file }
75
76256479.6ms for my $type (map @$_, @rules) {
7754656731ms for (2..$#$type) {
7862936752ms629367.74s next unless _check_rule($$type[$_], $fh, 0);
# spent 7.74s making 62936 calls to File::MimeInfo::Magic::_check_rule, avg 123µs/call
79412µs close $fh unless ref $file;
804118µs return ($$type[1], $fh);
81 }
82 }
83256048.1ms return (undef, $fh);
84}
85
86
# spent 7.74s (5.99+1.75) within File::MimeInfo::Magic::_check_rule which was called 62936 times, avg 123µs/call: # 62936 times (5.99s+1.75s) by File::MimeInfo::Magic::_magic at line 78, avg 123µs/call
sub _check_rule {
8762936178ms my ($ref, $fh, $lev) = @_;
886293633.0ms my $line;
89
90 # Read
9162936264ms if (ref $fh eq 'GLOB') {
92629361.55s62936382ms seek($fh, $$ref[0], SEEK_SET); # seek offset
# spent 382ms making 62936 calls to File::MimeInfo::Magic::CORE:seek, avg 6µs/call
93629362.07s62936734ms read($fh, $line, $$ref[1]); # read max length
# spent 734ms making 62936 calls to File::MimeInfo::Magic::CORE:read, avg 12µs/call
94 }
95 else { # allowing for IO::Something
96 $fh->seek($$ref[0], SEEK_SET); # seek offset
97 $fh->read($line, $$ref[1]); # read max length
98 }
99
100 # Match regex
10162936238ms259631.4ms $line = unpack 'b*', $line if $$ref[2]; # unpack to bits if using mask
# spent 31.4ms making 2596 calls to File::MimeInfo::Magic::CORE:unpack, avg 12µs/call
102629364.15s125872607ms return undef unless $line =~ $$ref[3]; # match regex
# spent 396ms making 62936 calls to File::MimeInfo::Magic::CORE:regcomp, avg 6µs/call # spent 210ms making 62936 calls to File::MimeInfo::Magic::CORE:match, avg 3µs/call
10347µs print STDERR '>', '>'x$lev, ' Value "', _escape_bytes($2),
104 '" at offset ', $$ref[1]+length($1),
105 " matches at $$ref[4]\n"
106 if $DEBUG;
107468µs return 1 unless $#$ref > 4;
108
109 # Check nested rules and recurs
110 for (5..$#$ref) {
111 return 1 if _check_rule($$ref[$_], $fh, $lev+1);
112 }
113 print STDERR "> Failed nested rules\n" if $DEBUG && ! $lev;
114 return 0;
115}
116
117sub rehash {
118 &File::MimeInfo::rehash();
119 &_rehash();
120 #use Data::Dumper;
121 #print Dumper \@magic_80, \@magic;
122}
123
124
# spent 345ms (249µs+345) within File::MimeInfo::Magic::_rehash which was called: # once (249µs+345ms) by File::MimeInfo::Magic::_magic at line 67
sub _rehash {
12512µs local $_; # limit scope of $_ ... :S
12615µs ($max_buffer, @magic_80, @magic) = (32); # clear data
127 my @magicfiles = @File::MimeInfo::DIRS
128131µs12.04ms ? ( grep {-e $_ && -r $_}
# spent 2.04ms making 1 call to File::BaseDir::data_files
129 map "$_/magic", @File::MimeInfo::DIRS )
130 : ( reverse data_files('mime/magic') ) ;
13112µs my @done;
132110µs for my $file (@magicfiles) {
13315µs next if grep {$file eq $_} @done;
134117µs1342ms _hash_magic($file);
# spent 342ms making 1 call to File::MimeInfo::Magic::_hash_magic
135111µs push @done, $file;
136 }
1371700µs1655µs @magic = sort {$$b[0] <=> $$a[0]} @magic;
# spent 655µs making 1 call to File::MimeInfo::Magic::CORE:sort
13817µs while ($magic[0][0] >= 80) {
1392173µs push @magic_80, shift @magic;
140 }
141137µs $_hashed = 1;
142}
143
144
# spent 342ms (232+110) within File::MimeInfo::Magic::_hash_magic which was called: # once (232ms+110ms) by File::MimeInfo::Magic::_rehash at line 134
sub _hash_magic {
14518µs my $file = shift;
146
1471113µs166µs open MAGIC, '<', $file
# spent 66µs making 1 call to File::MimeInfo::Magic::CORE:open
148 || croak "Could not open file '$file' for reading";
149147µs19µs binmode MAGIC;
# spent 9µs making 1 call to File::MimeInfo::Magic::CORE:binmode
150195µs149µs <MAGIC> eq "MIME-Magic\x00\n"
# spent 49µs making 1 call to File::MimeInfo::Magic::CORE:readline
151 or carp "Magic file '$file' doesn't seem to be a magic file";
15214µs my $line = 1;
153130.0ms3461.52ms while (<MAGIC>) {
# spent 1.52ms making 346 calls to File::MimeInfo::Magic::CORE:readline, avg 4µs/call
1541155948µs $line++;
155
156115517.4ms11556.22ms if (/^\[(\d+):(.*?)\]\n$/) {
# spent 6.22ms making 1155 calls to File::MimeInfo::Magic::CORE:match, avg 5µs/call
1573454.55ms push @magic, [$1,$2];
158345895µs next;
159 }
160
161 s/^(\d*)>(\d+)=(.{2})//s
16281018.0ms8109.42ms || warn "$file line $line skipped\n" && next;
# spent 9.42ms making 810 calls to File::MimeInfo::Magic::CORE:subst, avg 12µs/call
16381019.5ms8105.76ms my ($i, $o, $l) = ($1, $2, unpack 'n', $3);
# spent 5.76ms making 810 calls to File::MimeInfo::Magic::CORE:unpack, avg 7µs/call
164 # indent, offset, value length
1658103.39ms while (length($_) <= $l) {
16645733µs45202µs $_ .= <MAGIC>;
# spent 202µs making 45 calls to File::MimeInfo::Magic::CORE:rcatline, avg 4µs/call
16745184µs $line++;
168 }
169
1708103.24ms my $v = substr $_, 0, $l, ''; # value
171
17281057.4ms162039.7ms /^(?:&(.{$l}))?(?:~(\d+))?(?:\+(\d+))?\n$/s
# spent 30.2ms making 810 calls to File::MimeInfo::Magic::CORE:regcomp, avg 37µs/call # spent 9.46ms making 810 calls to File::MimeInfo::Magic::CORE:match, avg 12µs/call
173 || warn "$file line $line skipped\n" && next;
1748106.11ms my ($m, $w, $r) = ($1, $2 || 1, $3 || 1);
175 # mask, word size, range
1768101.19ms my $mdef = defined $m;
177
178 # possible big endian to little endian conversion
179 # as a bonus perl also takes care of weird endian cases
180810699µs if ( $w != 1 ) {
181811µs my ( $utpl, $ptpl );
182824µs if ( 2 == $w ) {
1834155µs848µs $v = pack 'S', unpack 'n', $v;
# spent 33µs making 4 calls to File::MimeInfo::Magic::CORE:pack, avg 8µs/call # spent 16µs making 4 calls to File::MimeInfo::Magic::CORE:unpack, avg 4µs/call
18448µs $m = pack 'S', unpack 'n', $m if $mdef;
185 }
186 elsif ( 4 == $w ) {
1874167µs849µs $v = pack 'L', unpack 'N', $v;
# spent 33µs making 4 calls to File::MimeInfo::Magic::CORE:pack, avg 8µs/call # spent 16µs making 4 calls to File::MimeInfo::Magic::CORE:unpack, avg 4µs/call
18848µs $m = pack 'L', unpack 'N', $m if $mdef;
189 }
190 else {
191 warn "Unsupported word size: $w octets ".
192 " at $file line $line\n"
193 }
194 }
195
1968103.59ms my $end = $o + $l + $r - 1;
197810907µs $max_buffer = $end if $max_buffer < $end;
1988104.04ms2087.00ms my $ref = $i ? _find_branch($i) : $magic[-1];
# spent 7.00ms making 208 calls to File::MimeInfo::Magic::_find_branch, avg 34µs/call
199810585µs $r--; # 1-based => 0-based range for regex
200810403µs $r *= 8 if $mdef; # bytes => bits for matching a mask
2018104.28ms154.32ms my $reg = '^'
# spent 4.32ms making 15 calls to File::MimeInfo::Magic::_mask_regex, avg 288µs/call
202 . ( $r ? "(.{0,$r}?)" : '()' )
203 . ( $mdef ? '('. _mask_regex($v, $m) .')'
204 : '('. quotemeta($v) .')' ) ;
205810133ms162032.0ms push @$ref, [
# spent 22.6ms making 810 calls to File::MimeInfo::Magic::CORE:regcomp, avg 28µs/call # spent 9.41ms making 810 calls to File::MimeInfo::Magic::CORE:qr, avg 12µs/call
206 $o, $end, # offset, offset+length+range
207 $mdef, # boolean for mask
208 qr/$reg/sm, # the regex to match
209 undef # debug data
210 ];
21181018.0ms8103.95ms $$ref[-1][-1] = "$file line $line" if $DEBUG;
# spent 3.95ms making 810 calls to File::MimeInfo::Magic::CORE:readline, avg 5µs/call
212 }
213187µs128µs close MAGIC;
# spent 28µs making 1 call to File::MimeInfo::Magic::CORE:close
214}
215
216
# spent 7.00ms within File::MimeInfo::Magic::_find_branch which was called 208 times, avg 34µs/call: # 208 times (7.00ms+0s) by File::MimeInfo::Magic::_hash_magic at line 198, avg 34µs/call
sub _find_branch { # finds last branch of tree of rules
217208424µs my $i = shift;
218208558µs my $ref = $magic[-1];
2194843.71ms for (1..$i) { $ref = $$ref[-1] }
2202083.06ms return $ref;
221}
222
223
# spent 4.32ms (4.11+212µs) within File::MimeInfo::Magic::_mask_regex which was called 15 times, avg 288µs/call: # 15 times (4.11ms+212µs) by File::MimeInfo::Magic::_hash_magic at line 201, avg 288µs/call
sub _mask_regex { # build regex based on mask
2241555µs my ($v, $m) = @_;
225151.18ms15136µs my @v = split '', unpack "b*", $v;
# spent 136µs making 15 calls to File::MimeInfo::Magic::CORE:unpack, avg 9µs/call
22615985µs1576µs my @m = split '', unpack "b*", $m;
# spent 76µs making 15 calls to File::MimeInfo::Magic::CORE:unpack, avg 5µs/call
2271534µs my $re = '';
22815121µs for (0 .. $#m) {
2297841.39ms $re .= $m[$_] ? $v[$_] : '.' ;
230 # If $mask = 1 than ($input && $mask) will be same as $input
231 # If $mask = 0 than ($input && $mask) is always 0
232 # But $mask = 0 only makes sense if $value = 0
233 # So if $mask = 0 we ignore that bit of $input
234 }
23515587µs return $re;
236}
237
238sub _escape_bytes { # used for debug output
239 my $string = shift;
240 if ($string =~ /[\x00-\x1F\x7F]/) {
241 $string = join '', map {
242 my $o = ord($_);
243 ($o < 32) ? '^' . chr($o + 64) :
244 ($o == 127) ? '^?' : $_ ;
245 } split '', $string;
246 }
247 return $string;
248}
249
250129µs1;
251
252__END__
 
# spent 10.3ms within File::MimeInfo::Magic::CORE:binmode which was called 2561 times, avg 4µs/call: # 2560 times (10.3ms+0s) by File::MimeInfo::Magic::_magic at line 72, avg 4µs/call # once (9µs+0s) by File::MimeInfo::Magic::_hash_magic at line 149
sub File::MimeInfo::Magic::CORE:binmode; # opcode
# spent 150µs within File::MimeInfo::Magic::CORE:close which was called 5 times, avg 30µs/call: # 4 times (123µs+0s) by File::MimeInfo::Magic::mimetype at line 47, avg 31µs/call # once (28µs+0s) by File::MimeInfo::Magic::_hash_magic at line 213
sub File::MimeInfo::Magic::CORE:close; # opcode
# spent 13.4ms within File::MimeInfo::Magic::CORE:fteread which was called 2560 times, avg 5µs/call: # 2560 times (13.4ms+0s) by File::MimeInfo::Magic::mimetype at line 36, avg 5µs/call
sub File::MimeInfo::Magic::CORE:fteread; # opcode
# spent 55.6ms within File::MimeInfo::Magic::CORE:ftsize which was called 2560 times, avg 22µs/call: # 2560 times (55.6ms+0s) by File::MimeInfo::Magic::mimetype at line 36, avg 22µs/call
sub File::MimeInfo::Magic::CORE:ftsize; # opcode
# spent 226ms within File::MimeInfo::Magic::CORE:match which was called 64901 times, avg 3µs/call: # 62936 times (210ms+0s) by File::MimeInfo::Magic::_check_rule at line 102, avg 3µs/call # 1155 times (6.22ms+0s) by File::MimeInfo::Magic::_hash_magic at line 156, avg 5µs/call # 810 times (9.46ms+0s) by File::MimeInfo::Magic::_hash_magic at line 172, avg 12µs/call
sub File::MimeInfo::Magic::CORE:match; # opcode
# spent 140ms within File::MimeInfo::Magic::CORE:open which was called 2561 times, avg 55µs/call: # 2560 times (140ms+0s) by File::MimeInfo::Magic::_magic at line 71, avg 55µs/call # once (66µs+0s) by File::MimeInfo::Magic::_hash_magic at line 147
sub File::MimeInfo::Magic::CORE:open; # opcode
# spent 66µs within File::MimeInfo::Magic::CORE:pack which was called 8 times, avg 8µs/call: # 4 times (33µs+0s) by File::MimeInfo::Magic::_hash_magic at line 187, avg 8µs/call # 4 times (33µs+0s) by File::MimeInfo::Magic::_hash_magic at line 183, avg 8µs/call
sub File::MimeInfo::Magic::CORE:pack; # opcode
# spent 9.41ms within File::MimeInfo::Magic::CORE:qr which was called 810 times, avg 12µs/call: # 810 times (9.41ms+0s) by File::MimeInfo::Magic::_hash_magic at line 205, avg 12µs/call
sub File::MimeInfo::Magic::CORE:qr; # opcode
# spent 202µs within File::MimeInfo::Magic::CORE:rcatline which was called 45 times, avg 4µs/call: # 45 times (202µs+0s) by File::MimeInfo::Magic::_hash_magic at line 166, avg 4µs/call
sub File::MimeInfo::Magic::CORE:rcatline; # opcode
# spent 734ms within File::MimeInfo::Magic::CORE:read which was called 62936 times, avg 12µs/call: # 62936 times (734ms+0s) by File::MimeInfo::Magic::_check_rule at line 93, avg 12µs/call
sub File::MimeInfo::Magic::CORE:read; # opcode
# spent 5.52ms within File::MimeInfo::Magic::CORE:readline which was called 1157 times, avg 5µs/call: # 810 times (3.95ms+0s) by File::MimeInfo::Magic::_hash_magic at line 211, avg 5µs/call # 346 times (1.52ms+0s) by File::MimeInfo::Magic::_hash_magic at line 153, avg 4µs/call # once (49µs+0s) by File::MimeInfo::Magic::_hash_magic at line 150
sub File::MimeInfo::Magic::CORE:readline; # opcode
# spent 449ms within File::MimeInfo::Magic::CORE:regcomp which was called 64556 times, avg 7µs/call: # 62936 times (396ms+0s) by File::MimeInfo::Magic::_check_rule at line 102, avg 6µs/call # 810 times (30.2ms+0s) by File::MimeInfo::Magic::_hash_magic at line 172, avg 37µs/call # 810 times (22.6ms+0s) by File::MimeInfo::Magic::_hash_magic at line 205, avg 28µs/call
sub File::MimeInfo::Magic::CORE:regcomp; # opcode
# spent 382ms within File::MimeInfo::Magic::CORE:seek which was called 62936 times, avg 6µs/call: # 62936 times (382ms+0s) by File::MimeInfo::Magic::_check_rule at line 92, avg 6µs/call
sub File::MimeInfo::Magic::CORE:seek; # opcode
# spent 655µs within File::MimeInfo::Magic::CORE:sort which was called: # once (655µs+0s) by File::MimeInfo::Magic::_rehash at line 137
sub File::MimeInfo::Magic::CORE:sort; # opcode
# spent 9.42ms within File::MimeInfo::Magic::CORE:subst which was called 810 times, avg 12µs/call: # 810 times (9.42ms+0s) by File::MimeInfo::Magic::_hash_magic at line 162, avg 12µs/call
sub File::MimeInfo::Magic::CORE:subst; # opcode
# spent 37.4ms within File::MimeInfo::Magic::CORE:unpack which was called 3444 times, avg 11µs/call: # 2596 times (31.4ms+0s) by File::MimeInfo::Magic::_check_rule at line 101, avg 12µs/call # 810 times (5.76ms+0s) by File::MimeInfo::Magic::_hash_magic at line 163, avg 7µs/call # 15 times (136µs+0s) by File::MimeInfo::Magic::_mask_regex at line 225, avg 9µs/call # 15 times (76µs+0s) by File::MimeInfo::Magic::_mask_regex at line 226, avg 5µs/call # 4 times (16µs+0s) by File::MimeInfo::Magic::_hash_magic at line 187, avg 4µs/call # 4 times (16µs+0s) by File::MimeInfo::Magic::_hash_magic at line 183, avg 4µs/call
sub File::MimeInfo::Magic::CORE:unpack; # opcode