Merge lp://staging/~jameinel/bzr/1.17-gc-single-mem into lp://staging/~bzr/bzr/trunk-old
Proposed by
John A Meinel
Status: | Merged |
---|---|
Approved by: | Ian Clatworthy |
Approved revision: | no longer in the source branch. |
Merged at revision: | not available |
Proposed branch: | lp://staging/~jameinel/bzr/1.17-gc-single-mem |
Merge into: | lp://staging/~bzr/bzr/trunk-old |
Diff against target: | 136 lines |
To merge this branch: | bzr merge lp://staging/~jameinel/bzr/1.17-gc-single-mem |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Andrew Bennetts | Approve | ||
Review via email: mp+7768@code.staging.launchpad.net |
To post a comment you must log in.
This patch finishes up the work I started with "commit" and memory consumption.
After this patch, when doing 'bzr commit' in a --2a format repository, we no longer hold more than one copy of the file text in memory.
So --2a now only holds:
1 file text
2 copies of the compressed bytes
For committing a single large file with lots of small lines, this is:
bzr.dev (last week) 457324 KB 6.164s
bzr.dev (_add_text) 215996 KB 3.980s
this code 123904 KB 3.863s
So this code at least isn't slower, and it cuts the memory for a large file commit by a good amount.
https:/ /bugs.edge. launchpad. net/bzr/ +bug/109114
I also checked, and I couldn't see any major change in the time for 'bzr pack', so it doesn't seem to make anything slower, while decreasing peak memory consumption by quite a bit.
(Note that the memory consumed during 'bzr pack' is unaffected, and is still considerably higher (536MiB). I'm guessing it is dominated by the 'create_ delta_index' which peaks at something like 2x bytes while building and re-shaping the index.)