[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: FWD: Make CVS 7X slower on Win32 NTFS than beta 4
From: |
J. David Bryan |
Subject: |
Re: FWD: Make CVS 7X slower on Win32 NTFS than beta 4 |
Date: |
Fri, 10 Feb 2006 11:55:54 -0500 |
Eli,
On 10 Feb 2006 at 12:35, Eli Zaretskii wrote:
> Thanks for catching this bug and for the patch.
You're welcome.
> However, your patch punishes the FAT filesystems unnecessarily by
> calling `stat' every time a directory on such a filesystem is examined.
Indeed, you're correct. I see from the file comment that stat-ing a FAT
directory doesn't help here.
> Please try the following alternative patch. Does it do The Right
> Thing for you?
It does, yes, for NTFS. I don't have any FAT directories on which to test,
though I did try flipping the sense of the FAT test in "dir.c" and
confirmed that make appeared to run OK on my makefile, albeit much slower.
However, I have a question about the logic. I'll preface my remarks by
noting that this is the first time I've looked at the make source, and I'm
looking very locally and so may not understand the broader ramifications.
Presuming "dir->dirstream == 0", the beta4 version of this code returns 0
if the file system is NTFS and the directory time hasn't changed, as the
else-clause just below the "#endif" is taken. With your patch, the same
scenario falls into the while loop and so calls "readdir" with
"dir->dirstream == 0". Is that correct? If not, then perhaps the "if
(rehash)" just above needs an "else return 0;".
By the way, thanks for your work on -jN. It works well on the dual-core
machine here and was my primary motivator for trying out the CVS version.
-- Dave