bzr explorer is almost unusable with medium-big tree (e.g. bzr.dev size)

Bug #582838 reported by Alexander Belchenko
46
This bug affects 10 people
Affects Status Importance Assigned to Milestone
Bazaar Explorer
High
Unassigned
QBzr
Medium
Unassigned

Bug Description

I'm dogfooding explorer with bzr.dev. My first impression that explorer unusable on such big trees. I have to disable automatic refresh to get it more responsive. But if I'll start to play with working tree filters and change it between different states quickly, then explorer becomes frozen for several minutes and get ~100% load on one core.

We need better asynchronous execution of refresh/change operations both in explorer and qbzr.

Revision history for this message
Alexander Belchenko (bialix) wrote :

Gary, do you have any ideas why changing filter of treebrowser has such frozen effect?

Changed in bzr-explorer:
status: New → Confirmed
importance: Undecided → High
tags: added: always-responsive-ui threads
tags: added: async-ops
Revision history for this message
Alexander Belchenko (bialix) wrote :

Also: bzr-explorer is very slow to open the location with big tree. I presume that's because it tries to get status, missing output and working tree browser in one blocking call.

Revision history for this message
Luis Arias (kaaloo) wrote :

I don't see this behavior on linux, could it be a windows issue ?

Revision history for this message
Alexander Belchenko (bialix) wrote :

My working machine is netbook with Atom 1.5GHz duo core processor. It very often seems slow for qbzr/explorer. So maybe it's just my machine.

Revision history for this message
Robert Collins (lifeless) wrote : Re: [Bug 582838] Re: bzr explorer is almost unusable with medium-big tree (e.g. bzr.dev size)

It is perhaps the dirstate read lock mutually excluding readers on
windows. Perhaps try dirstate2.

Revision history for this message
Gary van der Merwe (garyvdm) wrote : Re: [Bug 582838] Re: bzr explorer is almost unusable with medium-big tree (e.g. bzr.dev size)

On 19/05/2010 15:33, Alexander Belchenko wrote:
> Gary, do you have any ideas why changing filter of treebrowser has such
> frozen effect?

I have many ideas. Please will you send me a .callgrind.

Revision history for this message
Gary van der Merwe (garyvdm) wrote :

On 19/05/2010 15:34, Alexander Belchenko wrote:
> Also: bzr-explorer is very slow to open the location with big tree. I
> presume that's because it tries to get status, missing output and
> working tree browser in one blocking call.

Yes. We should try add plumbing so that we only have to get the working
tree delta once.

Revision history for this message
Martitza (martitzam) wrote :

I'm glad to see this getting some attention. This is one of the top complaints my coworkers had when we migrated from ClearCase to bzr. Our tree is much bigger than bzr.dev but not as big as emacs or mysql. Of course we immediately disabled automatic refresh. It's ok, but it hurts to admit every day that an old clunker like ClearCase actually did something better :)

Revision history for this message
Martitza (martitzam) wrote :

I am attaching test procedures, bzr logs (redacted for privacy) and callgrind files for an experiment on a medium-large branch, described in https://mail.google.com/mail/?shva=1#inbox/1297aed92dba3a57, run three different ways: with builtins only, with qbzr and with bzr-explorer using qbzr. Platform is WinXP(x86) SP3. BZR was installed via the standalone 2.1.1 installer which happens to bundle qbzr 0.18.4. Note that I create a new user account 'mm' for this experiment. mm is a local Administrator and has no ignore files.

I plan to repeat this set of experiments for bzr 2.2 and especially the latest qbzr, but it may take a couple days to get to it. Meanwhile, feedback on this set of data (methods, content, et cetera) are all welcome.

Hope this helps!

~M

Revision history for this message
Alexander Belchenko (bialix) wrote :

I think the right way to fix any performance and stability issues is to provide separate process doing all bzr interactions and GUI process only presenting the data from the worker process.

Changed in qbzr:
status: New → Confirmed
importance: Undecided → High
Revision history for this message
Martitza (martitzam) wrote :

@Alexander: Implementing "separation of concerns" as separate threads/processes as you suggest will help isolate problems faster, even if improved stability is not an immediate result.

tags: added: feel-faster multiprocess performance
Changed in qbzr:
importance: High → Medium
Revision history for this message
David Roth (davrot) wrote :

I have just updated from bazaar 2.2.4 and bzr-explorer 1.1.0 to bazaar 2.4.1 and bazaar explorer 1.2.1. (Ubuntu maverick using bzr ppa)
I have a tree with about 12k files, and I had no problems prior the update but since the update, after opening my tree, bzr explorer hangs some minutes and takes 100% of one core.
I have started bzr explorer via the command line, and when it begins eating 100% cpu, the console permanently outputs the following line (about 5-10 lines / second)

root: /mnt/storage/var/www/fcp/main
root: /mnt/storage/var/www/fcp/main
root: /mnt/storage/var/www/fcp/main
...
...

I think this problem is similar/related to this bug here, though I am not sure.
I think with this less info you won`t be able to find out what the problem is, so can someone give me some hints on how to get more infos about what bzr is actually doing when consuming 100% cpu?

Revision history for this message
Sven D (sven-d) wrote :

Is there a fix or solution after 4 years.

bzr explorer still freeze after some minutes and need 100% CPU of one core

The software is unusable.

Bazaar Explorer — Version Control for Human Beings
Version 1.3.0 "James Cook"

QBzr 0.23.1, bzrlib 2.7.0dev1, PyQt 4.11, Qt 4.8.6, Python 2.7.6

Debian Package from jessie

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers