Namazu-devel-ja(旧)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
$conf::EXCLUDE_PATH, ($File::Find::prune = 1 ;)
- From: 藤原 誠 Makoto Fujiwara <makoto@xxxxx>
- Date: Sat, 25 Mar 2000 17:42:40 +0900
- X-ml-name: namazu-devel-ja
- X-mail-count: 00271
> 千葉市中央区長洲
> 藤原 誠
$conf::EXCLUDE_PATH で除かれる directory に数多くの譜 (file) が
あったとします。その時には、find で言う prune = 1 にしておくといく
らか改善されるはずです。まず (Namazu とは、直接関係ない)実験をしま
した。
僕の場合、~/Mail/ml に数多くの譜があります。で、
次のようなものと、その中の #checked# の行を生かしたものを比較しま
す。
--------------------------------------------------
#!/usr/local/bin/perl
use File::Find;
$reject = $ARGV[0];
$start = time();
find (\&wanted,'.');
$elapsed = time() - $start ;
print " elapsed: $elapsed sec.\n";
print " scanned: $scanned \n";
print " found: $found \n";
sub wanted {
$scanned++ ;
if ( $reject && $File::Find::dir =~ /$reject/ ) {
#checked# $File::Find::prune = 1 ;
return; }
$found++;
}
--------------------------------------------------
というものを ~/perl/practice/find-file-for-namazu だとします。
○ #checked# の行をそのままの時
makoto@harry 16:45:35/000325(~/Mail)> ~/perl/practice/find-file-for-namazu ml
elapsed: 102 sec.
scanned: 168638
found: 13650
○ #checked# の行を生かした時
makoto@harry 16:47:19/000325(~/Mail)> ~/perl/practice/find-file-for-namazu ml
elapsed: 13 sec.
scanned: 13939
found: 13650
makoto@harry 16:47:44/000325(~/Mail)>
で、同じことを mknmz.in に施して見たのですが、closure の中では効か
ないのでしょうか。(これではだめでした)
--- scripts/mknmz.in-0325 Sat Mar 25 16:57:51 2000
+++ scripts/mknmz.in Sat Mar 25 17:02:36 2000
@@ -1306,6 +1306,7 @@
{
util::vprint(sprintf(_("Excluded: %s"), $target));
$counts_ref->{'excluded'}++;
+ $File::Find::prune = 1 ;
return;
}
---
(藤原)