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

Re: MinGW port usable

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jan 30, 2007, 14:35 UTC
Message-ID
<Pine.LNX.4.63.0701301524360.22628@wbgn013.biozentrum.uni-wuerzburg.de>
In-Reply-To
<Pine.LNX.4.64.0701291438580.3611@woody.linux-foundation.org>
Hi,
On Mon, 29 Jan 2007, Linus Torvalds wrote:
> Can you elaborate about any performance differences, especially with 
> cygwin? Does this make git perform reasonably on Windows, or are the 
> performance problems as bad as with cygwin?
On the git repository, using MinGW:
	$ time git-rev-list next > /dev/null
	real    0m0.320s
	user    0m0.031s
	sys     0m0.000s
	$ time git-rev-list next > /dev/null
	real    0m0.320s
	user    0m0.015s
	sys     0m0.015s
	$ time git-rev-list next > /dev/null
	real    0m0.352s
	user    0m0.015s
	sys     0m0.000s
Using cygwin:
	$ time git-rev-list next > /dev/null
	real    0m0.750s
	user    0m0.421s
	sys     0m0.140s
	$ time git-rev-list next > /dev/null
	real    0m0.750s
	user    0m0.374s
	sys     0m0.233s
	$ time git-rev-list next > /dev/null
	real    0m0.750s
	user    0m0.374s
	sys     0m0.218s

IOW MinGW wins hands down with an average 0.33s vs cygwin with an average 0.75s. (I am fairly certain that you must not trust sys times.)

I have no idea why, as the big show-stopper fork() is not even involved.
Now, for something different: git-log. On MinGW:
	$ time git-log next > /dev/null
	real    0m1.594s
	user    0m0.015s
	sys     0m0.015s
	$ time git-log next > /dev/null
	real    0m1.562s
	user    0m0.031s
	sys     0m0.000s
	$ time git-log next > /dev/null
	real    0m1.610s
	user    0m0.015s
	sys     0m0.015s
On Cygwin:
	$ time git-log next > /dev/null
	real    0m2.063s
	user    0m0.827s
	sys     0m1.031s
	$ time git-log next > /dev/null
	real    0m2.085s
	user    0m0.780s
	sys     0m1.061s
	$ time git-log next > /dev/null
	real    0m2.047s
	user    0m0.686s
	sys     0m1.171s
That's a bit less obvious: 1.589s for MinGW vs. 2.065s for Cygwin.

These are all hot-cache numbers, since the cold-cache performance of Windows is not easily triggered. (FWIW the first git-log on Cygwin -- which was cold-cache -- took over 10 seconds.)

Ciao, Dscho

Previous: Johannes SixtNext: Shawn O. Pearce
Message 17 of 39 in “MinGW port usable”
  1. Johannes SixtJan 29, 2007
  2. Shawn O. PearceJan 29, 2007
  3. Christian MICHONJan 29, 2007
  4. Shawn O. PearceJan 29, 2007
  5. Christian MICHONJan 29, 2007
  6. Christian MICHONJan 30, 2007
  7. Christian MICHONJan 30, 2007
  8. Johannes SchindelinJan 30, 2007
  9. Shawn O. PearceJan 30, 2007
  10. Johannes SixtJan 30, 2007
  11. Johannes SixtJan 30, 2007
  12. Linus TorvaldsJan 29, 2007
  13. Christian MICHONJan 29, 2007
  14. Johannes SchindelinJan 30, 2007
  15. Christian MICHONJan 30, 2007
  16. Johannes SixtJan 30, 2007
  17. Johannes SchindelinJan 30, 2007
  18. Shawn O. PearceJan 30, 2007
  19. Johannes SchindelinJan 30, 2007
  20. Shawn O. PearceJan 30, 2007
  21. Johannes SchindelinJan 30, 2007
  22. Shawn O. PearceJan 30, 2007
  23. Johannes SchindelinJan 30, 2007
  24. Daniel BarkalowJan 30, 2007
  25. Johannes SixtJan 30, 2007
  26. Andreas EricssonJan 30, 2007
  27. Johannes SchindelinJan 30, 2007
  28. Daniel BarkalowJan 30, 2007
  29. Johannes SchindelinJan 30, 2007
  30. Daniel BarkalowJan 30, 2007
  31. Johannes SixtJan 30, 2007
  32. Junio C HamanoJan 30, 2007
  33. H. Peter AnvinFeb 1, 2007
  34. Johannes SixtFeb 1, 2007
  35. H. Peter AnvinFeb 1, 2007
  36. H. Peter AnvinFeb 2, 2007
  37. Davide LibenziFeb 2, 2007
  38. Johannes SixtFeb 2, 2007
  39. H. Peter AnvinFeb 2, 2007

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.