make-w32
[Top][All Lists]
Advanced

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

performance issue with cgywin make


From: Bill Hoffman
Subject: performance issue with cgywin make
Date: Thu, 07 Dec 2006 15:44:17 -0500
User-agent: Thunderbird 1.5.0.8 (Windows/20061025)

So, if I run gmake (the patched cygwin version) and nmake (Microsoft's make) on roughly the same tree. (CMake can generate files for either.) nmake is able to check the depend information about twice as fast as gmake can. I suspect that the problem is in the use of stat. Although windows/ cygwin provide stat, there are significantly faster versions of stat available via direct windows system calls. We had a similar problem in CMake, and use the following code in windows to compare times stamps of
two files:


// Windows version. Get the modification time from extended file attributes.
 WIN32_FILE_ATTRIBUTE_DATA f1d;
 WIN32_FILE_ATTRIBUTE_DATA f2d;
 if(!GetFileAttributesEx(f1, GetFileExInfoStandard, &f1d))
   {
   return false;
   }
 if(!GetFileAttributesEx(f2, GetFileExInfoStandard, &f2d))
   {
   return false;
   }

 // Compare the file times using resolution provided by system call.
*result = (int)CompareFileTime(&f1d.ftLastWriteTime, &f2d.ftLastWriteTime);

The speed up was significant for cmake, and I suspect there would be a similar improvement for gmake. My question is where in the make source tree would I put such code?
Thanks.

-Bill








reply via email to

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