Filename | /usr/local/perls/perl-5.26.1/lib/5.26.1/CPAN/CacheMgr.pm |
Statements | Executed 97164 statements in 800ms |
Calls | P | F | Exclusive Time |
Inclusive Time |
Subroutine |
---|---|---|---|---|---|
1340 | 3 | 1 | 223ms | 223ms | CORE:ftfile (opcode) | CPAN::CacheMgr::
14322 | 3 | 1 | 165ms | 258ms | __ANON__[:136] | CPAN::CacheMgr::
14322 | 1 | 1 | 84.0ms | 84.0ms | CORE:ftlink (opcode) | CPAN::CacheMgr::
612 | 1 | 1 | 65.3ms | 54.2s | _clean_cache | CPAN::CacheMgr::
11872 | 1 | 1 | 64.4ms | 64.4ms | CORE:ftmtime (opcode) | CPAN::CacheMgr::
1 | 1 | 1 | 30.4ms | 94.8ms | CORE:sort (opcode) | CPAN::CacheMgr::
114 | 1 | 1 | 27.7ms | 27.7ms | CORE:unlink (opcode) | CPAN::CacheMgr::
719 | 2 | 1 | 26.5ms | 1.59s | disk_usage | CPAN::CacheMgr::
1 | 1 | 1 | 19.5ms | 54.3s | tidyup | CPAN::CacheMgr::
1331 | 2 | 1 | 18.1ms | 18.1ms | CORE:ftis (opcode) | CPAN::CacheMgr::
1 | 1 | 1 | 12.9ms | 338ms | entries | CPAN::CacheMgr::
15633 | 4 | 1 | 7.91ms | 7.91ms | CORE:ftdir (opcode) | CPAN::CacheMgr::
2948 | 2 | 1 | 5.62ms | 5.62ms | CORE:fteexec (opcode) | CPAN::CacheMgr::
1 | 1 | 1 | 5.48ms | 56.2s | scan_cache | CPAN::CacheMgr::
11965 | 1 | 1 | 3.65ms | 3.65ms | CORE:ftsize (opcode) | CPAN::CacheMgr::
499 | 2 | 1 | 2.69ms | 2.69ms | CORE:match (opcode) | CPAN::CacheMgr::
1 | 1 | 1 | 94µs | 56.2s | new | CPAN::CacheMgr::
1 | 1 | 1 | 4µs | 4µs | dir | CPAN::CacheMgr::
0 | 0 | 0 | 0s | 0s | BEGIN | CPAN::CacheMgr::
0 | 0 | 0 | 0s | 0s | as_string | CPAN::CacheMgr::
0 | 0 | 0 | 0s | 0s | cachesize | CPAN::CacheMgr::
Line | State ments |
Time on line |
Calls | Time in subs |
Code |
---|---|---|---|---|---|
1 | # -*- Mode: cperl; coding: utf-8; cperl-indent-level: 4 -*- | ||||
2 | # vim: ts=4 sts=4 sw=4: | ||||
3 | package CPAN::CacheMgr; | ||||
4 | use strict; | ||||
5 | use CPAN::InfoObj; | ||||
6 | @CPAN::CacheMgr::ISA = qw(CPAN::InfoObj CPAN); | ||||
7 | use Cwd qw(chdir); | ||||
8 | use File::Find; | ||||
9 | |||||
10 | use vars qw( | ||||
11 | $VERSION | ||||
12 | ); | ||||
13 | $VERSION = "5.5002"; | ||||
14 | |||||
15 | package CPAN::CacheMgr; | ||||
16 | use strict; | ||||
17 | |||||
18 | #-> sub CPAN::CacheMgr::as_string ; | ||||
19 | sub as_string { | ||||
20 | eval { require Data::Dumper }; | ||||
21 | if ($@) { | ||||
22 | return shift->SUPER::as_string; | ||||
23 | } else { | ||||
24 | return Data::Dumper::Dumper(shift); | ||||
25 | } | ||||
26 | } | ||||
27 | |||||
28 | #-> sub CPAN::CacheMgr::cachesize ; | ||||
29 | sub cachesize { | ||||
30 | shift->{DU}; | ||||
31 | } | ||||
32 | |||||
33 | #-> sub CPAN::CacheMgr::tidyup ; | ||||
34 | # spent 54.3s (19.5ms+54.3) within CPAN::CacheMgr::tidyup which was called:
# once (19.5ms+54.3s) by CPAN::CacheMgr::scan_cache at line 246 | ||||
35 | 1 | 0s | my($self) = @_; | ||
36 | 1 | 2µs | return unless $CPAN::META->{LOCK}; | ||
37 | 1 | 27µs | 1 | 13µs | return unless -d $self->{ID}; # spent 13µs making 1 call to CPAN::CacheMgr::CORE:ftdir |
38 | 1 | 478µs | my @toremove = grep { $self->{SIZE}{$_}==0 } @{$self->{FIFO}}; | ||
39 | 1 | 19µs | for my $current (0..$#toremove) { | ||
40 | 612 | 1.02ms | my $toremove = $toremove[$current]; | ||
41 | 612 | 11.2ms | 612 | 73.4ms | $CPAN::Frontend->myprint(sprintf( # spent 73.4ms making 612 calls to App::Cpan::__ANON__[App/Cpan.pm:673], avg 120µs/call |
42 | "DEL(%d/%d): %s \n", | ||||
43 | $current+1, | ||||
44 | scalar @toremove, | ||||
45 | $toremove, | ||||
46 | ) | ||||
47 | ); | ||||
48 | 612 | 289µs | return if $CPAN::Signal; | ||
49 | 612 | 3.08ms | 612 | 54.2s | $self->_clean_cache($toremove); # spent 54.2s making 612 calls to CPAN::CacheMgr::_clean_cache, avg 88.6ms/call |
50 | 612 | 995µs | return if $CPAN::Signal; | ||
51 | } | ||||
52 | 1 | 585µs | $self->{FIFO} = []; | ||
53 | } | ||||
54 | |||||
55 | #-> sub CPAN::CacheMgr::dir ; | ||||
56 | # spent 4µs within CPAN::CacheMgr::dir which was called:
# once (4µs+0s) by CPAN::Distribution::run_preps_on_packagedir at line 471 of CPAN/Distribution.pm | ||||
57 | 1 | 41µs | shift->{ID}; | ||
58 | } | ||||
59 | |||||
60 | #-> sub CPAN::CacheMgr::entries ; | ||||
61 | # spent 338ms (12.9+325) within CPAN::CacheMgr::entries which was called:
# once (12.9ms+325ms) by CPAN::CacheMgr::scan_cache at line 227 | ||||
62 | 1 | 1µs | my($self,$dir) = @_; | ||
63 | 1 | 0s | return unless defined $dir; | ||
64 | 1 | 0s | $self->debug("reading dir[$dir]") if $CPAN::DEBUG; | ||
65 | 1 | 1µs | $dir ||= $self->{ID}; | ||
66 | 1 | 6µs | 1 | 5.21ms | my($cwd) = CPAN::anycwd(); # spent 5.21ms making 1 call to CPAN::anycwd |
67 | 1 | 11µs | 1 | 71µs | chdir $dir or Carp::croak("Can't chdir to $dir: $!"); # spent 71µs making 1 call to Cwd::chdir |
68 | 1 | 35µs | 2 | 181µs | my $dh = DirHandle->new(File::Spec->curdir) # spent 174µs making 1 call to DirHandle::new
# spent 7µs making 1 call to File::Spec::Unix::curdir |
69 | or Carp::croak("Couldn't opendir $dir: $!"); | ||||
70 | 1 | 1µs | my(@entries); | ||
71 | 1 | 161µs | 1 | 6.86ms | for ($dh->read) { # spent 6.86ms making 1 call to DirHandle::read |
72 | 721 | 341µs | next if $_ eq "." || $_ eq ".."; | ||
73 | 719 | 220ms | 1310 | 211ms | if (-f $_) { # spent 210ms making 719 calls to CPAN::CacheMgr::CORE:ftfile, avg 293µs/call
# spent 371µs making 591 calls to CPAN::CacheMgr::CORE:ftdir, avg 628ns/call |
74 | 128 | 2.43ms | 512 | 2.94ms | push @entries, File::Spec->catfile($dir,$_); # spent 2.00ms making 128 calls to File::Spec::Unix::catfile, avg 16µs/call
# spent 656µs making 128 calls to File::Spec::Unix::catdir, avg 5µs/call
# spent 287µs making 256 calls to File::Spec::Unix::canonpath, avg 1µs/call |
75 | } elsif (-d _) { | ||||
76 | 591 | 6.83ms | 1182 | 5.78ms | push @entries, File::Spec->catdir($dir,$_); # spent 4.94ms making 591 calls to File::Spec::Unix::catdir, avg 8µs/call
# spent 849µs making 591 calls to File::Spec::Unix::canonpath, avg 1µs/call |
77 | } else { | ||||
78 | $CPAN::Frontend->mywarn("Warning: weird direntry in $dir: $_\n"); | ||||
79 | } | ||||
80 | } | ||||
81 | 1 | 5µs | 1 | 56µs | chdir $cwd or Carp::croak("Can't chdir to $cwd: $!"); # spent 56µs making 1 call to Cwd::chdir |
82 | 1 | 95.0ms | 11874 | 159ms | sort { -M $a <=> -M $b} @entries; # spent 94.8ms making 1 call to CPAN::CacheMgr::CORE:sort
# spent 64.4ms making 11872 calls to CPAN::CacheMgr::CORE:ftmtime, avg 5µs/call
# spent 48µs making 1 call to DirHandle::DESTROY |
83 | } | ||||
84 | |||||
85 | #-> sub CPAN::CacheMgr::disk_usage ; | ||||
86 | sub disk_usage { | ||||
87 | 719 | 498µs | my($self,$dir,$fast) = @_; | ||
88 | 719 | 445µs | return if exists $self->{SIZE}{$dir}; | ||
89 | 719 | 100µs | return if $CPAN::Signal; | ||
90 | 719 | 213µs | my($Du) = 0; | ||
91 | 719 | 8.28ms | 719 | 6.08ms | if (-e $dir) { # spent 6.08ms making 719 calls to CPAN::CacheMgr::CORE:ftis, avg 8µs/call |
92 | 719 | 15.3ms | 847 | 4.94ms | if (-d $dir) { # spent 4.18ms making 719 calls to CPAN::CacheMgr::CORE:ftdir, avg 6µs/call
# spent 757µs making 128 calls to CPAN::CacheMgr::CORE:ftfile, avg 6µs/call |
93 | 591 | 7.98ms | 591 | 3.55ms | unless (-x $dir) { # spent 3.55ms making 591 calls to CPAN::CacheMgr::CORE:fteexec, avg 6µs/call |
94 | unless (chmod 0755, $dir) { | ||||
95 | $CPAN::Frontend->mywarn("I have neither the -x permission nor the ". | ||||
96 | "permission to change the permission; cannot ". | ||||
97 | "estimate disk usage of '$dir'\n"); | ||||
98 | $CPAN::Frontend->mysleep(5); | ||||
99 | return; | ||||
100 | } | ||||
101 | } | ||||
102 | } elsif (-f $dir) { | ||||
103 | # nothing to say, no matter what the permissions | ||||
104 | } | ||||
105 | } else { | ||||
106 | $CPAN::Frontend->mywarn("File or directory '$dir' has gone, ignoring\n"); | ||||
107 | return; | ||||
108 | } | ||||
109 | 719 | 968µs | if ($fast) { | ||
110 | $Du = 0; # placeholder | ||||
111 | } else { | ||||
112 | find( | ||||
113 | # spent 258ms (165+93.1) within CPAN::CacheMgr::__ANON__[/usr/local/perls/perl-5.26.1/lib/5.26.1/CPAN/CacheMgr.pm:136] which was called 14322 times, avg 18µs/call:
# 11956 times (139ms+75.8ms) by File::Find::_find_dir at line 448 of File/Find.pm, avg 18µs/call
# 2357 times (25.8ms+17.2ms) by File::Find::_find_dir at line 358 of File/Find.pm, avg 18µs/call
# 9 times (72µs+66µs) by File::Find::_find_opt at line 270 of File/Find.pm, avg 15µs/call | ||||
114 | 14322 | 1.98ms | $File::Find::prune++ if $CPAN::Signal; | ||
115 | 14322 | 128ms | 14322 | 84.0ms | return if -l $_; # spent 84.0ms making 14322 calls to CPAN::CacheMgr::CORE:ftlink, avg 6µs/call |
116 | 14322 | 67.0ms | if ($^O eq 'MacOS') { | ||
117 | require Mac::Files; | ||||
118 | my $cat = Mac::Files::FSpGetCatInfo($_); | ||||
119 | $Du += $cat->ioFlLgLen() + $cat->ioFlRLgLen() if $cat; | ||||
120 | } else { | ||||
121 | 14322 | 42.2ms | 14322 | 3.34ms | if (-d _) { # spent 3.34ms making 14322 calls to CPAN::CacheMgr::CORE:ftdir, avg 233ns/call |
122 | 2357 | 13.7ms | 2357 | 2.07ms | unless (-x _) { # spent 2.07ms making 2357 calls to CPAN::CacheMgr::CORE:fteexec, avg 880ns/call |
123 | unless (chmod 0755, $_) { | ||||
124 | $CPAN::Frontend->mywarn("I have neither the -x permission nor ". | ||||
125 | "the permission to change the permission; ". | ||||
126 | "can only partially estimate disk usage ". | ||||
127 | "of '$_'\n"); | ||||
128 | $CPAN::Frontend->mysleep(5); | ||||
129 | return; | ||||
130 | } | ||||
131 | } | ||||
132 | } else { | ||||
133 | 11965 | 35.7ms | 11965 | 3.65ms | $Du += (-s _); # spent 3.65ms making 11965 calls to CPAN::CacheMgr::CORE:ftsize, avg 305ns/call |
134 | } | ||||
135 | } | ||||
136 | }, | ||||
137 | 107 | 850µs | 107 | 1.55s | $dir # spent 1.55s making 107 calls to File::Find::find, avg 14.5ms/call |
138 | ); | ||||
139 | } | ||||
140 | 719 | 106µs | return if $CPAN::Signal; | ||
141 | 719 | 3.37ms | $self->{SIZE}{$dir} = $Du/1024/1024; | ||
142 | 719 | 1.08ms | unshift @{$self->{FIFO}}, $dir; | ||
143 | 719 | 124µs | $self->debug("measured $dir is $Du") if $CPAN::DEBUG; | ||
144 | 719 | 456µs | $self->{DU} += $Du/1024/1024; | ||
145 | 719 | 2.02ms | $self->{DU}; | ||
146 | } | ||||
147 | |||||
148 | #-> sub CPAN::CacheMgr::_clean_cache ; | ||||
149 | # spent 54.2s (65.3ms+54.1) within CPAN::CacheMgr::_clean_cache which was called 612 times, avg 88.6ms/call:
# 612 times (65.3ms+54.1s) by CPAN::CacheMgr::tidyup at line 49, avg 88.6ms/call | ||||
150 | 612 | 787µs | my($self,$dir) = @_; | ||
151 | 612 | 26.7ms | 612 | 12.0ms | return unless -e $dir; # spent 12.0ms making 612 calls to CPAN::CacheMgr::CORE:ftis, avg 20µs/call |
152 | 498 | 26.4ms | 1494 | 54.4ms | unless (File::Spec->canonpath(File::Basename::dirname($dir)) # spent 51.7ms making 498 calls to File::Basename::dirname, avg 104µs/call
# spent 2.66ms making 996 calls to File::Spec::Unix::canonpath, avg 3µs/call |
153 | eq File::Spec->canonpath($CPAN::Config->{build_dir})) { | ||||
154 | $CPAN::Frontend->mywarn("Directory '$dir' not below $CPAN::Config->{build_dir}, ". | ||||
155 | "will not remove\n"); | ||||
156 | $CPAN::Frontend->mysleep(5); | ||||
157 | return; | ||||
158 | } | ||||
159 | 498 | 324µs | $self->debug("have to rmtree $dir, will free $self->{SIZE}{$dir}") | ||
160 | if $CPAN::DEBUG; | ||||
161 | 498 | 2.33ms | 498 | 54.0s | File::Path::rmtree($dir); # spent 54.0s making 498 calls to File::Path::rmtree, avg 108ms/call |
162 | 498 | 447µs | my $id_deleted = 0; | ||
163 | 498 | 27.9ms | 991 | 14.5ms | if ($dir !~ /\.yml$/ && -f "$dir.yml") { # spent 11.8ms making 493 calls to CPAN::CacheMgr::CORE:ftfile, avg 24µs/call
# spent 2.68ms making 498 calls to CPAN::CacheMgr::CORE:match, avg 5µs/call |
164 | 114 | 652µs | 114 | 19.2ms | my $yaml_module = CPAN::_yaml_module(); # spent 19.2ms making 114 calls to CPAN::_yaml_module, avg 169µs/call |
165 | 114 | 380µs | 114 | 9.57ms | if ($CPAN::META->has_inst($yaml_module)) { # spent 9.57ms making 114 calls to CPAN::has_inst, avg 84µs/call |
166 | my($peek_yaml) = eval { CPAN->_yaml_loadfile("$dir.yml"); }; | ||||
167 | if ($@) { | ||||
168 | $CPAN::Frontend->mywarn("(parse error on '$dir.yml' removing anyway)"); | ||||
169 | unlink "$dir.yml" or | ||||
170 | $CPAN::Frontend->mywarn("(Could not unlink '$dir.yml': $!)"); | ||||
171 | return; | ||||
172 | } elsif (my $id = $peek_yaml->[0]{distribution}{ID}) { | ||||
173 | $CPAN::META->delete("CPAN::Distribution", $id); | ||||
174 | |||||
175 | # XXX we should restore the state NOW, otherwise this | ||||
176 | # distro does not exist until we read an index. BUG ALERT(?) | ||||
177 | |||||
178 | # $CPAN::Frontend->mywarn (" +++\n"); | ||||
179 | $id_deleted++; | ||||
180 | } | ||||
181 | } | ||||
182 | 114 | 28.7ms | 114 | 27.7ms | unlink "$dir.yml"; # may fail # spent 27.7ms making 114 calls to CPAN::CacheMgr::CORE:unlink, avg 243µs/call |
183 | 114 | 1.46ms | 114 | 15.7ms | unless ($id_deleted) { # spent 15.7ms making 114 calls to CPAN::Debug::debug, avg 137µs/call |
184 | CPAN->debug("no distro found associated with '$dir'"); | ||||
185 | } | ||||
186 | } | ||||
187 | 498 | 1.75ms | $self->{DU} -= $self->{SIZE}{$dir}; | ||
188 | 498 | 5.08ms | delete $self->{SIZE}{$dir}; | ||
189 | } | ||||
190 | |||||
191 | #-> sub CPAN::CacheMgr::new ; | ||||
192 | # spent 56.2s (94µs+56.2) within CPAN::CacheMgr::new which was called:
# once (94µs+56.2s) by CPAN::Distribution::run_preps_on_packagedir at line 470 of CPAN/Distribution.pm | ||||
193 | 1 | 1µs | my($class,$phase) = @_; | ||
194 | 1 | 1µs | $phase ||= "atstart"; | ||
195 | 1 | 1µs | my $time = time; | ||
196 | 1 | 0s | my($debug,$t2); | ||
197 | 1 | 1µs | $debug = ""; | ||
198 | my $self = { | ||||
199 | ID => $CPAN::Config->{build_dir}, | ||||
200 | MAX => $CPAN::Config->{'build_cache'}, | ||||
201 | 1 | 5µs | SCAN => $CPAN::Config->{'scan_cache'} || 'atstart', | ||
202 | DU => 0 | ||||
203 | }; | ||||
204 | $CPAN::Frontend->mydie("Unknown scan_cache argument: $self->{SCAN}") | ||||
205 | 1 | 18µs | 1 | 10µs | unless $self->{SCAN} =~ /never|atstart|atexit/; # spent 10µs making 1 call to CPAN::CacheMgr::CORE:match |
206 | 1 | 2µs | 1 | 54µs | File::Path::mkpath($self->{ID}); # spent 54µs making 1 call to File::Path::mkpath |
207 | 1 | 6µs | 1 | 53µs | my $dh = DirHandle->new($self->{ID}); # spent 53µs making 1 call to DirHandle::new |
208 | 1 | 5µs | bless $self, $class; | ||
209 | 1 | 3µs | 1 | 56.2s | $self->scan_cache($phase); # spent 56.2s making 1 call to CPAN::CacheMgr::scan_cache |
210 | 1 | 2µs | $t2 = time; | ||
211 | 1 | 5µs | $debug .= "timing of CacheMgr->new: ".($t2 - $time); | ||
212 | 1 | 1µs | $time = $t2; | ||
213 | 1 | 0s | CPAN->debug($debug) if $CPAN::DEBUG; | ||
214 | 1 | 32µs | 1 | 55µs | $self; # spent 55µs making 1 call to DirHandle::DESTROY |
215 | } | ||||
216 | |||||
217 | #-> sub CPAN::CacheMgr::scan_cache ; | ||||
218 | # spent 56.2s (5.48ms+56.2) within CPAN::CacheMgr::scan_cache which was called:
# once (5.48ms+56.2s) by CPAN::CacheMgr::new at line 209 | ||||
219 | 1 | 1µs | my ($self, $phase) = @_; | ||
220 | 1 | 0s | $phase = '' unless defined $phase; | ||
221 | 1 | 12µs | return unless $phase eq $self->{SCAN}; | ||
222 | 1 | 2µs | return unless $CPAN::META->{LOCK}; | ||
223 | $CPAN::Frontend->myprint( | ||||
224 | sprintf("Scanning cache %s for sizes\n", | ||||
225 | 1 | 12µs | 1 | 49µs | $self->{ID})); # spent 49µs making 1 call to App::Cpan::__ANON__[App/Cpan.pm:673] |
226 | 1 | 0s | my $e; | ||
227 | 1 | 30µs | 1 | 338ms | my @entries = $self->entries($self->{ID}); # spent 338ms making 1 call to CPAN::CacheMgr::entries |
228 | 1 | 1µs | my $i = 0; | ||
229 | 1 | 1µs | my $painted = 0; | ||
230 | 1 | 4µs | for $e (@entries) { | ||
231 | 719 | 231µs | my $symbol = "."; | ||
232 | 719 | 530µs | if ($self->{DU} > $self->{MAX}) { | ||
233 | 612 | 118µs | $symbol = "-"; | ||
234 | 612 | 1.08ms | 612 | 26.5ms | $self->disk_usage($e,1); # spent 26.5ms making 612 calls to CPAN::CacheMgr::disk_usage, avg 43µs/call |
235 | } else { | ||||
236 | 107 | 309µs | 107 | 1.56s | $self->disk_usage($e); # spent 1.56s making 107 calls to CPAN::CacheMgr::disk_usage, avg 14.6ms/call |
237 | } | ||||
238 | 719 | 144µs | $i++; | ||
239 | 719 | 912µs | while (($painted/76) < ($i/@entries)) { | ||
240 | 76 | 322µs | 76 | 2.75ms | $CPAN::Frontend->myprint($symbol); # spent 2.75ms making 76 calls to App::Cpan::__ANON__[App/Cpan.pm:673], avg 36µs/call |
241 | 76 | 122µs | $painted++; | ||
242 | } | ||||
243 | 719 | 393µs | return if $CPAN::Signal; | ||
244 | } | ||||
245 | 1 | 2µs | 1 | 46µs | $CPAN::Frontend->myprint("DONE\n"); # spent 46µs making 1 call to App::Cpan::__ANON__[App/Cpan.pm:673] |
246 | 1 | 372µs | 1 | 54.3s | $self->tidyup; # spent 54.3s making 1 call to CPAN::CacheMgr::tidyup |
247 | } | ||||
248 | |||||
249 | 1; | ||||
# spent 7.91ms within CPAN::CacheMgr::CORE:ftdir which was called 15633 times, avg 506ns/call:
# 14322 times (3.34ms+0s) by CPAN::CacheMgr::__ANON__[/usr/local/perls/perl-5.26.1/lib/5.26.1/CPAN/CacheMgr.pm:136] at line 121, avg 233ns/call
# 719 times (4.18ms+0s) by CPAN::CacheMgr::disk_usage at line 92, avg 6µs/call
# 591 times (371µs+0s) by CPAN::CacheMgr::entries at line 73, avg 628ns/call
# once (13µs+0s) by CPAN::CacheMgr::tidyup at line 37 | |||||
# spent 5.62ms within CPAN::CacheMgr::CORE:fteexec which was called 2948 times, avg 2µs/call:
# 2357 times (2.07ms+0s) by CPAN::CacheMgr::__ANON__[/usr/local/perls/perl-5.26.1/lib/5.26.1/CPAN/CacheMgr.pm:136] at line 122, avg 880ns/call
# 591 times (3.55ms+0s) by CPAN::CacheMgr::disk_usage at line 93, avg 6µs/call | |||||
# spent 223ms within CPAN::CacheMgr::CORE:ftfile which was called 1340 times, avg 166µs/call:
# 719 times (210ms+0s) by CPAN::CacheMgr::entries at line 73, avg 293µs/call
# 493 times (11.8ms+0s) by CPAN::CacheMgr::_clean_cache at line 163, avg 24µs/call
# 128 times (757µs+0s) by CPAN::CacheMgr::disk_usage at line 92, avg 6µs/call | |||||
sub CPAN::CacheMgr::CORE:ftis; # opcode | |||||
# spent 84.0ms within CPAN::CacheMgr::CORE:ftlink which was called 14322 times, avg 6µs/call:
# 14322 times (84.0ms+0s) by CPAN::CacheMgr::__ANON__[/usr/local/perls/perl-5.26.1/lib/5.26.1/CPAN/CacheMgr.pm:136] at line 115, avg 6µs/call | |||||
# spent 64.4ms within CPAN::CacheMgr::CORE:ftmtime which was called 11872 times, avg 5µs/call:
# 11872 times (64.4ms+0s) by CPAN::CacheMgr::CORE:sort at line 82, avg 5µs/call | |||||
# spent 3.65ms within CPAN::CacheMgr::CORE:ftsize which was called 11965 times, avg 305ns/call:
# 11965 times (3.65ms+0s) by CPAN::CacheMgr::__ANON__[/usr/local/perls/perl-5.26.1/lib/5.26.1/CPAN/CacheMgr.pm:136] at line 133, avg 305ns/call | |||||
sub CPAN::CacheMgr::CORE:match; # opcode | |||||
# spent 94.8ms (30.4+64.4) within CPAN::CacheMgr::CORE:sort which was called:
# once (30.4ms+64.4ms) by CPAN::CacheMgr::entries at line 82 | |||||
# spent 27.7ms within CPAN::CacheMgr::CORE:unlink which was called 114 times, avg 243µs/call:
# 114 times (27.7ms+0s) by CPAN::CacheMgr::_clean_cache at line 182, avg 243µs/call |