commit ba9799e20e8046ef1316616a3c665f8e4558665a Merge: d1218e0 1920baf Author: Damian Johnson atagar@torproject.org Date: Tue Oct 8 00:42:46 2013 -0700
Reducing memory usage of descriptor content
Handful of improvements to reduce the memory usage of stem's descriptor content (with a special focus on server descriptors). This drops memory usage by roughly 20% without having a sizable impact on runtime.
Script used for testing:
import resource import time
from stem.descriptor import reader
print "memory (initial): %s" % resource.getrusage(resource.RUSAGE_SELF).ru_maxrss
start_time = time.time()
with reader.DescriptorReader(['/home/atagar/.tor/cached-descriptors']) as descriptor_reader: server_descriptors = list(descriptor_reader)
print "memory (after read): %s" % resource.getrusage(resource.RUSAGE_SELF).ru_maxrss print "read time: %0.2f seconds" % (time.time() - start_time)
Before:
% python scratch.py memory (initial): 7468 memory (after read): 50572 read time: 6.40 seconds
After:
% python scratch.py memory (initial): 7532 memory (after read): 40816 read time: 6.31 seconds
stem/descriptor/networkstatus.py | 2 +- stem/descriptor/router_status_entry.py | 2 +- stem/descriptor/server_descriptor.py | 13 +- stem/exit_policy.py | 264 +++++++++++++++----------------- stem/util/lru_cache.py | 10 +- stem/version.py | 11 ++ test/unit/exit_policy/policy.py | 22 --- 7 files changed, 152 insertions(+), 172 deletions(-)
tor-commits@lists.torproject.org