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

Re: [PATCH 0/2] Make gc a builtin.

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Mar 13, 2007, 01:20 UTC
Message-ID
<Pine.LNX.4.64.0703121815411.9690@woody.linux-foundation.org>
In-Reply-To
<et4s76$9u3$1@sea.gmane.org>
On Tue, 13 Mar 2007, Jakub Narebski wrote:
Show 7 quoted lines
> Linus Torvalds wrote:
> 
> > Another thing I find annoying (even as a UNIX user) is that whenever I do 
> > any tracing for performance data, shell is absolutely horrid. It's *so* 
> > much nicer to do 'strace' on built-in programs that it's not even funny.
> 
> Isn't that what GIT_TRACE was made for?
That just shows the high-level git commands.

If you look for performance issues or correctness issues (like when I tried to figure out if O_LARGEFILE was set for "git clone"), GIT_TRACE does nothing. You want to do "strace -f -o trace-file".

And shell scripts look horrible there, and make it much harder to follow things. In fact, it doesn't even need to be shell per se, but fork/exec already makes things harder to see, shell just tends to (a) make it even more so (try stracing though a shell startup, ugh) and (b) cause tons of fork/exec cases.

For example, when we made patch generation a built-in, it suddenly became *hugely* easier to follow what was going on in the traces, because it got much more streamlined. In general I find that "high performance" == "easy to trace".

		Linus
Previous: Jakub NarebskiNext: Shawn O. Pearce
Message 14 of 15 in “Make gc a builtin.”
  1. 0/2 Make gc a builtin.James Bowes, Mar 11, 2007
  2. 1/2 run-command: Make run_command_va_opt public and add run_command_vaJames Bowes, Mar 11, 2007
  3. 2/2 Make gc a builtin.James Bowes, Mar 11, 2007
  4. Johannes SchindelinMar 11, 2007
  5. Junio C HamanoMar 12, 2007
  6. Make gc a builtin.James Bowes, Mar 12, 2007
  7. Shawn O. PearceMar 12, 2007
  8. Johannes SchindelinMar 12, 2007
  9. Theodore TsoMar 12, 2007
  10. Johannes SchindelinMar 12, 2007
  11. Theodore TsoMar 12, 2007
  12. Linus TorvaldsMar 12, 2007
  13. Jakub NarebskiMar 13, 2007
  14. Linus TorvaldsMar 13, 2007
  15. Shawn O. PearceMar 12, 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.