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). Linus - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html