After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 566329 - Giggle is too slow on large repositories
Giggle is too slow on large repositories
Status: RESOLVED OBSOLETE
Product: giggle
Classification: Other
Component: libgiggle
HEAD
Other Mac OS
: Normal normal
: 0.5
Assigned To: Mathias Hasselmann (IRC: tbf)
giggle-maint
Depends on:
Blocks:
 
 
Reported: 2009-01-02 14:45 UTC by Mikael Hallendal
Modified: 2020-11-11 19:40 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Mikael Hallendal 2009-01-02 14:45:28 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.
Comment 1 Edward Hervey 2009-01-10 17:15:53 UTC
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.
Comment 2 Mathias Hasselmann (IRC: tbf) 2009-01-10 19:43:29 UTC
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.
Comment 3 André Klapper 2012-04-04 10:13:08 UTC
Mass-fixing incorrect QA contact scheme for giggle so interested people can follow its development. (See 564922#c1 for ref.)
Comment 4 André Klapper 2020-11-11 19:40:06 UTC
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).