~bzr-pqm/bzr/bzr.dev

Viewing all changes in revision 4679.3.48.

  • Committer: John Arbash Meinel
  • Date: 2009-09-30 21:25:26 UTC
  • mto: (4679.6.1 2.1-export-c-api)
  • mto: This revision was merged to the branch mainline in revision 4735.
  • Revision ID: john@arbash-meinel.com-20090930212526-imvbkyikd9d3r4o6
Prototype of not interning sha1: strings.

This ends up saving 268480KB => 260972KB (7.5MB) of memory for all of launchpad.
Most of that is because the string interned dict drops from 12MB to 3MB because
it holds 100k keys instead of 500k keys.

On the plus side, we can be fairly confident that we don't access sha1 keys
as plain strings.
If we disable interning for the sha1 keys themselves, we bloat by about 8MB,
but save 30s => 27s.
We would bloat more, but we are trading a 24MB _interned_keys dict for a 12MB one.
So what we really need is to get the custom interning dict, so that we
don't waste so much memory there.

expand all expand all

Show diffs side-by-side

added added

removed removed

Lines of Context: