On Tue, Aug 04, 2009 at 08:56:48AM -0400, Jon Smirl wrote: > > A simple start would be to feed each byte as it is decompressed > directly into the sha code and avoid the intermediate buffer. Removing > the buffer reduces cache pressure. First, you still have to preserve any decoded byte in the compress window, which is 32Kb by default. Typical files in Git repositories are not so big, many are under 32Kb and practically all of them fit to L2 cache of modern processors. Second, complication of assembler code from the coupling of two algorithms will be enormous. It is not sufficient registers on x86 for SHA-1 alone. Third, SHA-1 is very computationally intensive and with predictable access pattern (linear), so you do not wait for L2, because it will be in L1. So, I don't see where you can gain significantly. Perhaps, you can win just from re-writing inflate in assembler, but I do not expect any significant gains other than that. And coupling has obvious disadvantages when it comes to maintenance... Dmitry -- 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