From: Jeff King Date: Tue, 25 Sep 2007 19:06:40 GMT Subject: Re: diffcore-rename performance mode Message-ID: <20070925190640.GA4613@coredump.intra.peff.net> In-Reply-To: <20070925163843.GA22987@coredump.intra.peff.net> 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