bzr diff too slow (cpu intensive) on large projects
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Confirmed
|
High
|
Unassigned | ||
Breezy |
Triaged
|
Medium
|
Unassigned |
Bug Description
In general the experience with huge projects is sub-optimal in comparison to other VCS. A particular example: I have a --no-trees local repo of lp:gcc and a single --lightweight checkout in a local directory where I work switching in-between all my branches. Both dirs are on local disk (I've had *awful* experience when on NFS but that's not the case).
The following command takes about 2 minutes on a recent quad-core CPU and is mostly CPU-bound. Here is the full report from the 'time' utility:
$ /usr/bin/time -v bzr diff -rbranch:
Command exited with non-zero status 1
Command being timed: "bzr diff -rbranch:
User time (seconds): 91.23
System time (seconds): 12.81
Percent of CPU this job got: 84%
Elapsed (wall clock) time (h:mm:ss or m:ss): 2:03.53
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 369488
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 30
Minor (reclaiming a frame) page faults: 4319360
Voluntary context switches: 8765
Involuntary context switches: 498
Swaps: 0
File system inputs: 277288
File system outputs: 880
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 1
Memory usage is also a (smaller) problem, as you can see max RSS is about 370MB, which seems too much for diffing files. I am trying hard to use bzr for gcc development but I can't say I have seen a lot of activity on all the performance or memory related bug reports.
Changed in bzr: | |
status: | Expired → New |
Changed in bzr: | |
importance: | Undecided → High |
status: | New → Confirmed |
tags: | added: check-for-breezy |
tags: |
added: diff performance removed: check-for-breezy |
Changed in brz: | |
importance: | Undecided → Medium |
status: | New → Triaged |
Bazaar (bzr) 2.5.0 3.7-1-ARCH- i686-with- glibc2. 0 python2. 7/site- packages/ bzrlib
Python interpreter: /usr/bin/python2 2.7.3
Python standard library: /usr/lib/python2.7
Platform: Linux-3.
bzrlib: /usr/lib/