checkout operation consume too much resources
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
High
|
John A Meinel |
Bug Description
On my tree, which is fairly big (430Mo, 7222 files in 1233 directories), remove-
# time bzr remove-tree
bzr remove-tree 0.03s user 0.01s system 0% cpu 1:58.59 total
# time bzr checkout
bzr checkout 0.01s user 0.01s system 0% cpu 3:36.56 total
During checkout, memory usage peaked at around 60Mo.
With version 1.6.1:
# time bzr remove-tree
bzr remove-tree 0.01s user 0.01s system 0% cpu 2:05.02 total
# time bzr checkout
bzr checkout 0.01s user 0.03s system 0% cpu 10:21.28 total
I killed bzr after 10 minutes of wait, memory usage peaked at ~400Mo!
All tests were done on Windows, using the standalone installer versions. I have the same problem on Linux: bzr hog all the memory, and I kill it before completion. The only way to go around this problem for me is to kill the checkout operation, clean .bzr/checkout/limbo and .bzr/checkout/
Related branches
Changed in bzr: | |
assignee: | nobody → jameinel |
status: | Triaged → In Progress |
Changed in bzr: | |
status: | In Progress → Fix Committed |
Changed in bzr: | |
milestone: | none → 1.9rc1 |
status: | Fix Committed → Fix Released |
So, I believe the specific issue is that the underlying code is buffering all of the working tree before writing it to disk. The apis in question are now requesting all the content in one pass, which is good, but the one handling it should be a bit more aware, and only spool out the request one file at a time.