[ruby-dev:39887] Re: stable find.rb

From: Tanaka Akira <akr@...>
Date: 2009-12-16 04:00:57 UTC
List: ruby-dev #39887
2009年12月16日9:33 Takahiro Kambe <taca@back-street.net>:

> 1. そのままの状態(ls -f相当)が欲しい。

Dir.entries などを使ってください。

> 2. なるべく返す順にディレクトリ・ツリーをコピーしたい。

そのようにコピーするとどう嬉しいのでしょうか?

もし嬉しいことがあるとしても、
おそらく OS やファイルシステムに依存する、
ポータブルでない話な気がします。

> 3. 改めてlocaleに依存した方法でソートしたいので無駄になる。
> 4. 非常に多量な数のファイルがあった場合に、不要なソートの処理で性能の
>   低下が起きそう。

find.rb では各ファイルを lstat するので、
処理時間としてはそちらが支配的になるのではないかと思います。

また、今回 find.rb の中身をみて気がついたのですが
各ファイルを stat して lstat するというコードになっていました。
(File.exist? file としてから、File.lstat(file).directory? としていた)

これは無駄なわけですが、今までに文句をみた覚えがないことを考えると、
find.rb に性能を限界まで求めるひとはじつはいないのではないかという気がします。
-- 
[田中 哲][たなか あきら][Tanaka Akira]

In This Thread