58
58
used as the interning structure for StaticTuple objects.
59
59
(John Arbash Meinel)
61
* ``bzrlib._static_tuple_pyx.StaticTuple`` is now available and used by
61
* ``bzrlib._static_tuple_c.StaticTuple`` is now available and used by
62
62
the btree index parser. This class functions similarly to ``tuple``
63
63
objects. However, it can only point to a limited collection of types.
64
(Currently StaticTuple, str, unicode, None, bool, int, long, float).
65
This allows us to remove it from the garbage collector (it cannot be in
66
a cycle), it also allows us to intern the objects. In testing, this can
67
reduce peak memory by 20-40%, and significantly improve performance by
68
removing objects from being inspected by the garbage collector.
64
(Currently StaticTuple, str, unicode, None, bool, int, long, float, and
65
not subclasses). This allows us to remove it from the garbage collector
66
(it cannot be in a cycle), it also allows us to intern the objects. In
67
testing, this can reduce peak memory by 20-40%, and significantly
68
improve performance by removing objects from being inspected by the
69
garbage collector. (John Arbash Meinel)
71
71
* ``GroupCompressBlock._ensure_content()`` will now release the
72
72
``zlib.decompressobj()`` when the first request is for all of the
76
76
of internal state and buffers. (For branching bzr.dev this drops peak
77
77
memory from 382MB => 345MB.) (John Arbash Meinel)
79
* When streaming content between ``2a`` format repositories, we now clear
80
caches from earlier versioned files. (So 'revisions' is cleared when we
81
start reading 'inventories', etc.) This can have a significant impact on
82
peak memory for initial copies (~200MB). (John Arbash Meinel)