Re: What's cooking in git.git (Feb 2011, #05; Wed, 23)
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Feb 27, 2011, 14:28 UTC
- Message-ID
- <alpine.DEB.1.00.1102271509540.1561@bonsai2>
- In-Reply-To
- <20110226110740.GA3096@tugrik.mns.mnsspb.ru>
Hi Kirill,
On Sat, 26 Feb 2011, Kirill Smelkov wrote:
Show 17 quoted lines
> On Fri, Feb 25, 2011 at 10:54:40PM +0100, Johannes Schindelin wrote: > > > > On Fri, 25 Feb 2011, Kirill Smelkov wrote: > > > > > On Fri, Feb 25, 2011 at 12:11:59PM +0100, Johannes Schindelin wrote: > > > > > > > Further, I think that my beloved Shift+Insert will no longer work > > > > with your [2]. > > > > > > Probably yes, > > > > In my experiment after rebuilding msys-1.0.dll, it still works. > > xser32.dll has nothing to do with msys - it's just a fake stub for > sh.exe. Before testing, have you "patched" sh.exe the way it is done in > my ks/xser32.dll > (http://repo.or.cz/w/msysgit/kirr.git/commit/9d952c74a52f577b2d16d4e4a489541a8fa7fbbd)
Ah. I had to add -Wl,-kill-at to the LDFLAGS so it works.
See the ks/xser32 branch (and the ks/msys branch) of msysgit.git.
Show 17 quoted lines
> > The problem for now is that when I time /share/msysGit/run-tests.sh, > > there is hardly any gain from your patches: > > > > Old: > > > > > > real 18m1.031s > > user 6m17.861s > > sys 19m25.257s > > > > New: > > > > real 17m54.500s > > user 6m12.319s > > sys 19m28.567s > > Did you patch sh.exe to link to xser32.dll instead of user32.dll?
Now I did, and the difference is quite noticable:
real 15m37.281s user 5m6.934s sys 15m53.911s
(Note that I did not spend time to increase the N, so there is no point in putting a percentage on the difference.)
I wonder whether we could patch sh.exe so it loads user32.dll _lazily_ rather than using the xser32.dll hack?
(This would also fix the issue that I can no longer use Shift+Insert to paste the clipboard into the Git Bash...)
> Also I can't say for sure (hope yet) how sh-intensitive git tests are, > but at least running configure for say gettext or whatever should be > visibly faster, at least on wine.
They are pretty intensive, as they are shell scripts all over the place in their own right. I fear, however, that the real problem (maybe not on WINE, but with real Windows) is that sh.exe needs to provide too many POSIX-like things when starting new processes.
I fear, further, that the only way to make things more efficient on Windows is to get rid of the many exec() calls and do more things in-process. (If this is true, JGit should kick msysGit's ass.) This would not apply to the test suite, though, which needs to stay a shell script suite.
But maybe I am wrong, and the performance is lost through memory management and filesystem interaction.
Ciao, Dscho