This is the mail archive of the cygwin-developers@sourceware.cygnus.com mailing list for the Cygwin project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Cygwin performance (was [ANN] PW32 the...)


Corinna Vinschen wrote:
> [...]
> I'm absolutely sure to get a speed up by the following, without
> the need of another stat-function:
> 
> The current implementation of fhandler_disk_file::fstat() calls
> three different functions which each opens the file independently:
> get_file_owner(), get_file_group(), get_file_attribute(). I've
> already planned to eliminate the first two functions. Instead,
> the complete functionality should be offered by get_file_attribute().
> This makes sense, because get_file_attribute already knows user
> and group. I hope to increase speed noticable that way.

I would like to announce that I could speed up stat() already
by 20-30% on remote drives and around 50% on local drives.

I have done this by the aforementioned patch and additionally by
calling the function `set_process_priviliges()' only once per process
in dcrt0.cc instead of calling it each time, a file is opened.
Actually this second change was a breakthru.
Further, the call to `num_entries()' in `stat_worker ()' is
only be done if the drive is no remote drive in which case the
st_nlink member of the stat struct is fixed set to 2.

Chris, if you like to see it, I would check it in. I have send it
to cygwin-patches already. There's an additional bugfix which
is described in detail in that mail.

Personally, I will check out another way that could perhaps
result in another 20-50% speed up but this is a bigger (say:
unsafe) change in fhandler.cc and security.cc.

Corinna



Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]