[MERGE] Use a LRUCache in LocalTransport.clone

John Arbash Meinel john at arbash-meinel.com
Tue Jan 15 01:23:25 GMT 2008


Andrew Bennetts wrote:
> Robert Collins wrote:
>> On Sat, 2008-01-05 at 01:41 +1100, Andrew Bennetts wrote:
>>> This is a simple change to use a LRUCache in LocalTransport.clone.  It seems
>>> that calculating an abspath can be quite expensive.  By keeping the LRUCache I
>>> reduce the time to pull a 300 revisions from a knit repo into a pack repo from
>>> ~32 seconds to ~26 seconds!
>> Thats nice, but why do we care? We're trying to migrate to packs and
>> conversions should be one-offs. It should not be any slower than knit to
>> knit cloning anyhow.
> 
> FWIW, I noticed this because I was branching from knit repo into a pack repo,
> and was curious about why it was so slow.  This isn't a common operation for me,
> seeing as I use packs almost everywhere now, so I'm not too worried if this
> speed-up lands or not.
> 
> I did think it was interesting enough to share with the list, though.
> 
> -Andrew.
> 
> 
> 

If you still have the call log around, can you at least track down where 
clone() is happening under get_weave_or_empty()? I couldn't find it at a 
quick glance.

John
=:->




More information about the bazaar mailing list