GUI performance (XXX)next
commit77253a36b5e78844b9ea79e73c504a3085ee68c1
authorDaniel Tschan <XXX@XXX>
Sat, 25 Jun 2011 14:24:45 +0000 (25 15:24 +0100)
committerThomas Leonard <talex5@gmail.com>
Sat, 25 Jun 2011 14:24:45 +0000 (25 15:24 +0100)
tree571edf064e68b55ba3fbc8d0bef7f40ce31fc9a9
parent62a719e6b26c1e34371a8a39f456d4237e78ef46
GUI performance (XXX)

For feeds with many dependencies 0launch-gui blocks for several minutes or even indefinitely before downloading the feed files. The same happens while downloading the implementations. Analysis showed that all available resources are used to update the graphical representation of the download status (a GTK TreeView) over and over again. The analysis was conducted using:
* System based on Intel Atom D525 @ 1.8 GHz
* RHEL 6
* Python 2.6.6
* pygtk 2.16.0
* gtk 2.18.9
* 0install 0.53 and 1.0
* A feed with 137 dependencies

The current implementation always updates the whole TreeView. I propose to update only the part that is currently visible. This way the resources needed for the update no longer depend on the number of feed dependencies. Please see the attached patch for a possible implementation. The patch applies cleanly to the current head of the master branch (2989c874562b7920b3da60993666716c2d6b0c4e). With the patch applied the gui works as expected and with no loss of functionality.
zeroinstall/0launch-gui/iface_browser.py