git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [RFC/PATCH v2 1/1] cygwin: Add fast_lstat() and fast_fstat() functions

From
Mark Levedahl <mlevedahl@gmail.com>
Date
Jul 18, 2013, 22:36 UTC
Message-ID
<51E86E02.4060208@gmail.com>
In-Reply-To
<51E862FC.4090607@web.de>
On 07/18/2013 05:49 PM, Torsten Bögershausen wrote:
Show 19 quoted lines
> On 2013-07-18 19.50, Ramsay Jones wrote:
>>
>> Hmm, that looks good. :-D
>>
>> Torsten reported a performance boost using the win32 stat() implementation
>> on a linux git repo (2s -> 1s, if I recall correctly) on cygwin 1.7.
>> Do you have a larger repo available to test?
> (I have a 5 years old Dual Core, 2.5 Ghz, 1 TB hard disk, Win XP, cygwin 1.7)
> On that machine I can see the performance boost.
> Which kind of computers are you guys using?
>
> SSD/hard disk ?
> How much RAM ?
> Which OS ?
> Is there a difference between Win XP, Win7, Win8?
>
> [snip]
>
>

My previous results were from a Win 7 laptop, 2.7 GHz 2nd generation I7, 8 Gig Ram, 250 GByte spinning rust drive, all formatted NTFS.

Here's some more results, running WinXP in VirtualBox on my older Linux laptop (2.5 GHz Penryn dual core, 500 GByte spinning rust, virtual file system is NTFS). First, results using Ramsay's last patch on pu adding the fast_lstat: Timing results are after first doing 5 'git status runs' to assure the cache is hot:

% using the fast_lstat and friends... /usr/local/src/git>time git -c core.filemode=false status >& /dev/null

real 0m0.469s user 0m0.062s sys 0m0.436s /usr/local/src/git>

/usr/local/src/git>time git -c core.filemode=true status >& /dev/null

real 0m0.719s user 0m0.030s sys 0m0.686s /usr/local/src/git>

And now the same. but using Ramsay's first patch that removes all win32 stat stuff and forces everything to go through Cygwin's normal stat/fstat: % stat - with / without core.filemode, no win32 stats /usr/local/src/git>time git -c core.filemode=false status >& /dev/null

real 0m0.328s user 0m0.093s sys 0m0.264s /usr/local/src/git>

/usr/local/src/git>time git -c core.filemode=true status >& /dev/null

real 0m0.625s user 0m0.124s sys 0m0.500s /usr/local/src/git>

Unlike the results on the fast Win7 laptop, the above show statistically significant slow down from the fast_lstat approach. I'm just not seeing a case for the special case handling, and of course Junio has already voted with his preference of removing the special case stuff as well.

Mark
Previous: Torsten BögershausenNext: Junio C Hamano
Message 10 of 16 in “cygwin: Add fast_lstat() and fast_fstat() functions”
  1. 1/1 cygwin: Add fast_lstat() and fast_fstat() functionsRamsay Jones, Jul 10, 2013
  2. Mark LevedahlJul 14, 2013
  3. Junio C HamanoJul 15, 2013
  4. Torsten BögershausenJul 16, 2013
  5. Mark LevedahlJul 16, 2013
  6. Dmitry PotapovJul 16, 2013
  7. Mark LevedahlJul 16, 2013
  8. Ramsay JonesJul 18, 2013
  9. Torsten BögershausenJul 18, 2013
  10. Mark LevedahlJul 18, 2013
  11. Junio C HamanoJul 18, 2013
  12. Mark LevedahlJul 19, 2013
  13. Mark LevedahlJul 16, 2013
  14. Ramsay JonesJul 16, 2013
  15. Mark LevedahlJul 16, 2013
  16. Junio C HamanoJul 18, 2013

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.