summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Thiel <byronimo@gmail.com>2011-07-05 16:40:54 +0200
committerSebastian Thiel <byronimo@gmail.com>2011-07-05 16:40:54 +0200
commitef5dc3d968b3aeed16a02ec705f89b72ad46fa84 (patch)
tree9e203cd7a994a6ee10c91e8f19f238c62b856e23
parent0e64168dd3f43b02857e60183d40c86480f01dc7 (diff)
downloadgitdb-ef5dc3d968b3aeed16a02ec705f89b72ad46fa84.tar.gz
Optimized test_pack_streaming not to cache the objects anymore. Instead an iterator is provided which does the job. Previously it would easily use 750 MB of ram to keep all the associated objects, more than 350k. Still a lot of memory for just 350k objects, but its python after all
m---------gitdb/ext/smmap0
-rw-r--r--gitdb/test/performance/test_pack_streaming.py5
2 files changed, 2 insertions, 3 deletions
diff --git a/gitdb/ext/smmap b/gitdb/ext/smmap
-Subproject f097bd611a82289d6bb95074fdf596332cb1c98
+Subproject 9c3eb3dafd765ee2e8299b53a1d8d780d9a8f55
diff --git a/gitdb/test/performance/test_pack_streaming.py b/gitdb/test/performance/test_pack_streaming.py
index 795ed1e..3c40ed0 100644
--- a/gitdb/test/performance/test_pack_streaming.py
+++ b/gitdb/test/performance/test_pack_streaming.py
@@ -40,10 +40,9 @@ class TestPackStreamingPerformance(TestBigRepoR):
count = 0
total_size = 0
st = time()
- objs = list()
for sha in pdb.sha_iter():
count += 1
- objs.append(pdb.stream(sha))
+ pdb.stream(sha)
if count == ni:
break
#END gather objects for pack-writing
@@ -51,7 +50,7 @@ class TestPackStreamingPerformance(TestBigRepoR):
print >> sys.stderr, "PDB Streaming: Got %i streams by sha in in %f s ( %f streams/s )" % (ni, elapsed, ni / elapsed)
st = time()
- PackEntity.write_pack(objs, ostream.write)
+ PackEntity.write_pack((pdb.stream(sha) for sha in pdb.sha_iter()), ostream.write, object_count=ni)
elapsed = time() - st
total_kb = ostream.bytes_written() / 1000
print >> sys.stderr, "PDB Streaming: Wrote pack of size %i kb in %f s (%f kb/s)" % (total_kb, elapsed, total_kb/elapsed)