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