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: Bill Hoffman
Subject: Re: performance issue with cgywin make
Date: Sat, 09 Dec 2006 08:27:29 -0500
User-agent: Thunderbird 1.5.0.8 (Windows/20061025)

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.

-Bill





reply via email to

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