Re: [RFC \ WISH] Add -o option to git-rev-list
- From
Linus Torvalds <torvalds@osdl.org>
- Date
- Dec 11, 2006, 19:25 UTC
- Message-ID
- <Pine.LNX.4.64.0612111120190.12500@woody.osdl.org>
- In-Reply-To
- <e5bfff550612111059g35f1aa2dmdead17a60f5dfca8@mail.gmail.com>
On Mon, 11 Dec 2006, Marco Costalba wrote:
> > $ time sh -c "git rev-list --header --boundary --parents --topo-order HEAD | cat > /dev/null" > $ time sh -c "git rev-list --header --boundary --parents --topo-order HEAD > /tmp/tmp.txt; cat /tmp/tmp.txt > /dev/null"
Btw, for me the numbers aren't stable enough to be al lthat final, but doing it multiple times on the kernel archive I get:
real 0m0.947s real 0m1.046s real 0m0.943s real 0m0.868s
for the pipe case, and
real 0m0.953s real 0m1.056s real 0m1.060s real 0m0.968s
for the temp-file. IOW, no real difference. Just doing the "> /dev/null" directly is more consistent (no task-switching, SMP effects, or cache conflicts) at
real 0m0.806s real 0m0.806s real 0m0.805s real 0m0.808s
but one recurrent theme is definitely true: the "cat" part is a noticeable overhead. But that in itself means that git-rev-list is just so efficient that even just basically copying its output is going to be measurable.
Which is obviously a good thing, but it means that it's not very interesting in the big picture (ie I bet the real overheads are going to be elsewhere if you actually expect to draw anything on the screen).