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: Serious performance problems (malloc related?)

One area that I've noticed slowness is in using the 'find' command
to search for old "tmp" files or to rebuild the locate database.

In tracing the Win32 file operations, find seems to perform multiple
file open operations for each file processed. One way to speed up
operations in this area might be to keep a "cache" of the last "N"
file handles. I suspect it's just the Windows path lookup mechanism
being slow to reopen things. But if the cygwin.dll could cache even
the past 5 entries, it might speed things up significantly. If it
is opened each time to read different information, it might be much
cheaper to collect all the information at one time and cache it in
an internal "inode cache" that could expire in a second or so.

If it would "slow" down other programs, it could have some smarts in
the system calls to look for calling patterns from programs like find
that need a couple or more openings to fully "process a file", that all
happen within a few milliseconds of each other.

BTW -- in case anyone is interested -- you can use the free Unix Services
for windows available for WinXP. However, amusingling enough -- their
execution times are *slower* than cygwin's... Of course MS might have deliberately used non-optimized methods for their services to convince
people to recode for the Win32 interface (and thus benefit by increased
Win32 lockin).


Christopher Faylor wrote:

Yep. This is pretty much what I expected. Now we'll see a stream of
people commenting on slowness and speculating on the cause without
spending any time to actually figure out what the cause might be.

Think of what a hero you'll be if you figure out a way to improve
cygwin's "slowness".

-- Unsubscribe info: Problem reports: Documentation: FAQ:

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