GNOME Bugzilla – Bug 566329
Giggle is too slow on large repositories
Last modified: 2020-11-11 19:40:06 UTC
Migrated from GGL-76 Reported by Sven Herzberg: Giggle is really slow on large repositories. We should have something like F-Spot's timeline to be able to select a certain period of time (eg. with the last month as default). Then people can more easily select the dates that they are interested in. Comment by Mikael Hallendal: Spent a bit of time looking at this yesterday and I think we can definitely improve the situation without changing too much, even though I think some way of selecting a certain period would be good. Right now we read the log twice on startup. First to get the revision tree and revision info from 'git rev-list --header --all --topo-order --parents' and then later from 'git log'. The git-log run is in order to fetch all the authors, information already retrieved from the first run. We also seem to spend quite a bit of time in the treeview and this should be improved by not showing all revisions in it.
the .ignore matching is also really slow because it is done on a per-file basis in the treeview. Maybe using "git ls-files" over the whole top-directory with the proper flags (--others for ex) would be better, it can return the whole matching in one go *really* quickly.
The main problem is, that parsing of git output happens synchroniously in the main thread. IHMO GiggleJob should be changed to process output asynchroniously. This should improve perceived performance dramatically. Question is how to get this asynchron behavior: On option is to let GiggleJob yield output line by line via some idle handler. This would give the main thread a change to drive the UI. The other option is to use threads for parsing. The new gio scheduler could be helpful here. Maybe it even can be used to drop giggle's own job dispatcher. Don't know yet. My focus right now is to remove regressions I've introduced by the UI modifications, so that we can have a nice 0.5 release.
Mass-fixing incorrect QA contact scheme for giggle so interested people can follow its development. (See 564922#c1 for ref.)
bugzilla.gnome.org is being replaced by gitlab.gnome.org. We are closing all old bug reports and feature requests in GNOME Bugzilla which have not seen updates for a long time. If you still use giggle and if you still see this bug / want this feature in a recent and currently supported version, then please feel free to report it at https://gitlab.gnome.org/GNOME/giggle/-/issues/ Thank you for creating this report and we are sorry it could not be implemented (volunteer workforce and time is limited).