Namazu-devel-ja(旧)


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

$conf::EXCLUDE_PATH, ($File::Find::prune = 1 ;)



>                                            千葉市中央区長洲
>                                                    藤原  誠
  $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; 
     }
---
(藤原)