Paul Eggert <[EMAIL PROTECTED]> wrote:

> Jim Meyering <[EMAIL PROTECTED]> writes:
>
>>       CONSECUTIVE_READDIR_UNLINK_THRESHOLD = 200
>
> I looked into this a bit, and found myself wondering: why does 'rm'
> need to have this constant?  Could rm do the rough equivalent of
> savedir on the directory (copying its file names and perhaps types
> into main memory), and then walk through the in-memory copy of the
> directory?
>
> Such an approach would take more memory, but the extra memory should
> be acceptable these days.  Also, this approach would walk through the
> directory twice, but in the normal case this wouldn't hurt performance
> much, and it might even help performance.
>
> An advantage of this approach is that we wouldn't need these fudge
> factors for buggy file systems.

I wrote a prototype savedir-based implementation from scratch.
It is a more efficient when there are many directories
containing many entries, but it demonstrates O(n^2) performance
when the hierarchy is deep and narrow, e.g., /x/x/x/x/x/x/.../x.

So, yes, this is worth investigating.


_______________________________________________
Bug-coreutils mailing list
Bug-coreutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-coreutils

Reply via email to