On 2013-07-18 19.50, Ramsay Jones wrote: > Mark Levedahl wrote: >> On 07/15/2013 10:06 PM, Torsten Bögershausen wrote: >>> On 2013-07-15 21.49, Junio C Hamano wrote: >>>> Mark Levedahl <mlevedahl@xxxxxxxxx> writes: >>>> >>>>>> In order to limit the adverse effects caused by this implementation, >>>>>> we provide a new "fast stat" interface, which allows us to use this >>>>>> only for interactions with the index (i.e. the cached stat data). >>>>>> >>>>>> Signed-off-by: Ramsay Jones <ramsay@xxxxxxxxxxxxxxxxxxx> >>>>>> --- >>>>> I've tested this on Cygwin 1.7 on WIndows 7 , comparing to the results >>>>> using your prior patch (removing the Cygwin specific lstat entirely) >>>>> and get the same results with both, so this seems ok from me. >>>>> >>>>> My comparison point was created by reverting your current patch from >>>>> pu, then reapplying your earlier patch on top, so the only difference >>>>> was which approach was used to address the stat functions. >>>>> >>>>> Caveats: >>>>> 1) I don't find any speed improvement of the current patch over the >>>>> previous one (the tests actually ran faster with the earlier patch, >>>>> though the difference was less than 1%). >>> Hm, measuring the time for the test suite is one thing, >>> did you measure the time of "git status" with and without the patch? >>> >>> (I don't have my test system at hand, so I can test in a few days/weeks) >> Timing for 5 rounds of "git status" in the git project. First, with the >> current fast_lstat patches: >> /usr/local/src/git>for i in {1..5} ; do time git status >& /dev/null ; done >> >> real 0m0.218s >> user 0m0.000s >> sys 0m0.218s >> >> real 0m0.187s >> user 0m0.077s >> sys 0m0.109s >> >> real 0m0.187s >> user 0m0.030s >> sys 0m0.156s >> >> real 0m0.203s >> user 0m0.031s >> sys 0m0.171s >> >> real 0m0.187s >> user 0m0.062s >> sys 0m0.124s >> >> Now, with Ramsay's original patch just removing the non-Posix stat >> functions: >> /usr/local/src/git>for i in {1..5} ; do time git status >& /dev/null ; done >> >> real 0m0.218s >> user 0m0.046s >> sys 0m0.171s >> >> real 0m0.187s >> user 0m0.015s >> sys 0m0.171s >> >> real 0m0.187s >> user 0m0.015s >> sys 0m0.171s >> >> real 0m0.187s >> user 0m0.047s >> sys 0m0.140s >> >> real 0m0.187s >> user 0m0.031s >> sys 0m0.156s >> >> >> I see no difference in the above. (Yes, I checked multiple times that I >> was using different executables). > > 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] -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html