On Tue, Sep 25, 2007 at 12:38:43PM -0400, Jeff King wrote: >[...] > > What is most confusing is why the 'somefree' case performs so badly, > since we should just be using the cnt_data. I'll see if gprof can shed OK, I found the problem. estimate_similarity calls diff_populate_filespec each time, even if we already have the cnt_data, which leads to recomputing the blob contents from deltas. Oops. Fixing this, the correct numbers are: | stock | nofree | old somefree | fixed somefree -----------------|----------------------------------------------- user time (s) | 76.78 | 16.96 | 46.26 | 16.99 peak memory (Kb) | 52300 | 66796 | 59156 | 57328 So now we're at a 4.5x speedup for about 10% extra memory usage. Patch will follow. -Peff - 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