svn-import performance analysis
Jelmer Vernooij
jelmer at vernstok.nl
Wed Dec 3 04:57:30 GMT 2008
On Wed, 2008-12-03 at 05:44 +0100, Jelmer Vernooij wrote:
> On Tue, 2008-12-02 at 18:03 -0600, John Arbash Meinel wrote:
> > > I'm at a bit of a loss as to how I can optimize this further. Does
> > > anybody have any ideas? Also, I would expect CHK inventories to be of
> > > help here - is that correct?
> > CHK inventories will be much more capable of "partial update without
> > full serialization/deserialization", as it is designed in from the
> > beginning.
> >
> > One hack I did a long time ago was to have each InventoryEntry remember
> > its serialized form (along with some other info like what serializer
> > created it, etc.) and then have it throw away that value when it was
> > modified. Though it really needs the calling code to be careful about
> > modifications, because InventoryEntries are just plain ol' data
> > structures, without a way to know if they have been made "dirty".
> >
> > So... CHK should be a big help here, and without doing some dirty hacks
> > in bzrlib, I'm not sure if there is much else to be done.
> Cool, I'm looking forward to them landing then :-) At least the code in
> bzr-svn is ready for that now.
>
> When using brisbane-core with 1.9-rich-root, the time spent seems to've
> shifted significantly. Only 17% of the time is now spent in
> Repository.add_inventory_delta(). Instead, more time is now spent in:
>
> * Knit.add_lines() (30.11%)
> * Knit.get_record_stream() (18.78%)
> * Repository.get_inventory() (5.22%)
Argh, stupid me had forgotten to build the pyrex extensions... Here are
the updated numbers (different svn repository):
* Repository.add_inventory_delta() (28.69%)
* VersionedFile.get_record_stream() (16.11%)
* Knit.add_lines() (24.01%)
Cheers,
Jelmer
More information about the bazaar
mailing list