Mercurial > hg
view tests/test-update-renames.t @ 23226:5dcaed20b27c stable
changegroup: sparsely populate fnodes
Previously, fnodes had a key and empty dict value for every element in
changedfiles. This is somewhat wasteful. Empty dicts in CPython consume
a lot more memory than you would expect - 280 bytes.
On mozilla-central, which has ~190,000 files/fnodes keys, the previous
loop populating fnodes allocated 91,924 KB of memory, most of that for
the empty dicts.
With this patch in place, our peak RSS during mozilla-central clone
drops:
before: 364,356 KB
after: 326,008 KB
delta: -38,348 KB
When combined with the previous patch, total peak RSS decrease is now
190,116 KB.
author | Gregory Szorc <gregory.szorc@gmail.com> |
---|---|
date | Thu, 06 Nov 2014 22:48:20 -0800 |
parents | 39d38f16a3f7 |
children | ef1eb6df7071 |
line wrap: on
line source
Test update logic when there are renames Update with local changes across a file rename $ hg init $ echo a > a $ hg add a $ hg ci -m a $ hg mv a b $ hg ci -m rename $ echo b > b $ hg ci -m change $ hg up -q 0 $ echo c > a $ hg up merging a and b to b warning: conflicts during merge. merging b incomplete! (edit conflicts, then use 'hg resolve --mark') 0 files updated, 0 files merged, 0 files removed, 1 files unresolved use 'hg resolve' to retry unresolved file merges [1]