On Thu, 29 Nov 2007, Linus Torvalds wrote: > > Something like the appended (untested! Ok, tested now. It does seem to work. The page fault trace for the pack-file shows that we now get basically perfect IO patterns for my "git checkout" testcase, and while I'm not sure that's necessarily a test-case that really deserves this kind of attention, it's certainly potentially interesting. To check the performance impact of this, though, you'd need to pack the same repository two different ways - with this kind of sorting change and without - and then test different cold-cache timings for things like "git blame" etc that might care. The timing of the commands itself could be done with either a pre-change or post-change version of git, it's only the resulting order in the pack-file that matters. My very unscientific tests says that "git read-tree" is speed up by the change (from 5.2s to 3.3s, so it's quite noticeable), but "git blame" slows down (from 8.7s to 12.9s, so that's quite noticeable too). But as Jakub pointed out, the cold-cache numbers do fluctuate a lot, and while they were reasonably stable over runs, the "git blame" numbers in particular probably depend a fair amount on whether the file is commonly changed or not. Anybody interested in trying to do something more scientific? 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