209
209
* Added ``bzrlib._simple_set_pyx``. This is a hybrid between a Set and a
210
210
Dict (it only holds keys, but you can lookup the object located at a
211
211
given key). It has significantly reduced memory consumption versus the
212
builtin objects (1/2 the size of Set, 1/3rd the size of Dict). This will
213
be used as the interning structure for StaticTuple objects, as part of
214
an ongoing push to reduce peak memory consumption. (John Arbash Meinel)
212
builtin objects (1/2 the size of Set, 1/3rd the size of Dict). This is
213
used as the interning structure for StaticTuple objects.
216
216
* ``BTreeLeafParser.extract_key`` has been tweaked slightly to reduce
217
217
mallocs while parsing the index (approx 3=>1 mallocs per key read).
218
218
This results in a 10% speedup while reading an index.
219
219
(John Arbash Meinel)
221
* ``bzrlib._static_tuple_pyx.StaticTuple`` is now available. This class
222
functions similarly to ``tuple`` objects. However, it can only point at
223
other ``StaticTuple`` instances or strings. This allows us to remove it
224
from the garbage collector (it cannot be in a cycle), it also allows us
225
to intern the objects. In testing, this can reduce peak memory by
226
20-40%, and significantly improve performance by removing objects from
227
being inspected by the garbage collector. (John Arbash Meinel)
221
229
* The ``bzrlib.lsprof`` module has a new class ``BzrProfiler`` which makes
222
230
profiling in some situations like callbacks and generators easier.