make-w32
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: performance issue with cgywin make


From: Earnie Boyd
Subject: Re: performance issue with cgywin make
Date: Sun, 10 Dec 2006 11:21:05 -0500
User-agent: Internet Messaging Program (IMP) H3 (4.0.4)

Quoting Christopher Faylor <address@hidden>:

On Sat, Dec 09, 2006 at 08:27:29AM -0500, Bill Hoffman wrote:
Eli Zaretskii wrote:
Date: Fri, 08 Dec 2006 21:46:18 -0500
From: Bill Hoffman <address@hidden>

So, the windows native stat is about 3 X faster.

This is not really a valid conclusion: `stat' does much more than just
get the file's attributes via a single Win32 API call.  And Make does
use the result of the other API calls, such as st_ino, st_dev, and
st_mode, for example.

Since nmake is performing about 2X faster than gmake, the likely
culprit is stat.  This all started because a cmake user was trying to
switch from nmake to gmake, and found it so much slower, then I
remembered the change we made in cmake.  stat does do more, but I would
assume that make is mostly interested in comparing file modification
times, and ignores the rest of those values.

I will poke around in the gmake sources and try to figure out if I can
replace some of the stat calls.  It looks like I can just change
name_mtime in remake.c it uses st_mode in one place but only to check
for symlinks.  I could maybe have a fast mtime if check_symlink_flag is
not set, in that case only the file time is used.  One issue is that
FILE_TIMESTAMP is a uintmax_t and the windows call uses __int64 for the
time stamp.

I'm not sure if you are understanding this or not but there will never
be a version of gnu make in the Cygwin release which replaces stat()
calls with direct calls to Windows functions and I will actively lobby
not to have any such patches added to any cygwin-specific parts of make.


As will I but if we can improve the native version of gnu make with native calls then I'm all for that.

Earnie Boyd
--
Please post responsibly:
* Use text posts instead of html; many list members just trash mail with html.
* Do not use multipart mime to send both text and html versions.
* Do not top post replies; post inline with the parts you are responding to.
* Trim the post replies; remove irrelevant information from the quoted article.
* Original posters:
 ** Provide small complete examples of the problem.
 ** Provide the full command that produced errors.
 ** Provide the versions of the software used.
--
******************************************************************************
* The user of this server has agreed to allow the use of a trailer in the    *
* mail that he sends for advertising purposes.  This advertisment is added   *
* by the server and is not in the control of the user of our services.       *
******************************************************************************

Save on your shoes, socks and other needs:
http://give-me-an-offer.com/store/shoes

Save on your baby gift needs:
http://give-me-an-offer.com/offers/products/baby

Playstation 3 Auctions
http://give-me-an-offer.com





reply via email to

[Prev in Thread] Current Thread [Next in Thread]