From: Simon Tatham Date: Sat, 17 Jan 2004 13:24:59 +0000 (+0000) Subject: So _that's_ why mkfiles.pl was running so slowly on my Windows box! X-Git-Tag: r8855-g4f798d~1271 X-Git-Url: https://asedeno.scripts.mit.edu/gitweb/?a=commitdiff_plain;h=bb41e411162d2dd23a1d53060cabd2a47f2ae49f;p=PuTTY_svn.git So _that's_ why mkfiles.pl was running so slowly on my Windows box! &findfile() now caches its results. At least one full order of magnitude speedup when running on an SMB-mounted volume. Phew. git-svn-id: http://svn.tartarus.org/sgt/putty@3720 cda61777-01e9-0310-a592-d414129be87e --- diff --git a/mkfiles.pl b/mkfiles.pl index 30bd680d..652d2ecf 100755 --- a/mkfiles.pl +++ b/mkfiles.pl @@ -184,12 +184,15 @@ foreach $i (keys %depends) { sub findfile { my ($name) = @_; my $dir, $i, $outdir = ""; - $i = 0; - foreach $dir (@incdirs) { - $outdir = $dir, $i++ if -f "$dir$name"; + unless (defined $findfilecache{$name}) { + $i = 0; + foreach $dir (@incdirs) { + $outdir = $dir, $i++ if -f "$dir$name"; + } + die "multiple instances of source file $name\n" if $i > 1; + $findfilecache{$name} = $outdir . $name; } - die "multiple instances of source file $name\n" if $i > 1; - return "$outdir$name"; + return $findfilecache{$name}; } sub objects {