This is the mail archive of the cygwin 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]
Other format: [Raw text]

Re: Slow stat() on noacl mounts due to x permission check


On Fri, Feb 3, 2012 at 1:20 PM, Christian Franke
<Christian.Franke@t-online.de> wrote:
> Cygwin stat() may be much slower on noacl mounts than on acl mounts.This is
> because on noacl mounts the x-permission bit is guessed by checking for
> "#!", ":" or "MZ" in the first bytes of the file. AFAIKS this is done for
> all files except *.exe, *.lnk and *.com.
>
> A real world testcase with 20120201 snapshot on a (C++/Java development)
> tree with ~52000 files in ~12000 dirs:
>
> . Â Â Â Â Â Â Â Â Â Â Â Â Â Ânoacl Âacl
> find -size ... (after boot) Â 518s Â51s
> find -size ... (disk cached)  13s  8s
> find -name ... (disk cached)  Â3s  3s (does not need stat())
>
> Is it really needed to do the header check for each file?
>

Yes.

> Would it break important use cases if the check is only done for files with
> typical script file extensions?
> For example: no extension, .sh, .csh, .pl, .py, ...
>

Yes it would break my use of this feature.

> Another more flexible solution would be a mount option to configure this.
> (xguess=0: no check; 1: some extensions only; 2: all files)
>

The default should be the existing behavior.

-- 
Earnie
-- https://sites.google.com/site/earnieboyd

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple


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