Cygwin Filesystem Performance degradation 1.7.5 vs 1.7.7, and methods for improving performance

Yoni Londner yonihola2@gmail.com
Mon Sep 13 11:28:00 GMT 2010


Hi,

 > However, isn't that kind of a chicken/egg situation?  If you want to
 > reuse the content of the FILE_BOTH{_ID}_DIRECTORY_INFORMATION structure
 > from a previous call to readdir, you would have to call the

I am not talking about reusing info from a previous readdir.

Every single file cygwin tries to access, it does it in a loop, trying 
afterwards to check for *.lnk file.

Using the directory query operations, it is possible to get this info 
faster:
instead of getting file info for FOO and then for "FOO.lnk",
Cygwin can query the directory info for "FOO FOO.LNK" (for the file 
requested, plus its possible symlink file).

Yoni

On 12/9/2010 1:41 PM, Corinna Vinschen wrote:
> On Sep 12 10:49, Yoni Londner wrote:
>> Hi,
>>
>> The caching-speed up is trivial:
>> We store the the FileFullDirectoryInformation fields, and if any of
>> them change - we re-read the file.
>>
>> Its not (in practical life) possible to change a file without
>> causing a modification on FileIndex/CreationTime/LastWriteTime/ChangeTime/EndOfFile/AllocationSize/FileAttributes/FileName/EaSize!
>>
>>  From the MSDN we see the info we can get on a
>> FileFullDirectoryInformation request:
>
> We're already using FileBothDirectoryInformation and
> FileBothIdDirectoryInformation in readdir anyway.
>
> However, isn't that kind of a chicken/egg situation?  If you want to
> reuse the content of the FILE_BOTH{_ID}_DIRECTORY_INFORMATION structure
> from a previous call to readdir, you would have to call the
> corresponding NtQueryInformationFile call(s) to fetch the information
> from the file for comparision purposes.  When you fetched it anyway,
> there's no reason anymore to compare them, since you can use what
> you just fetched.  Where's the advantage?
>
>
> Corinna
>



More information about the Cygwin-patches mailing list