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 302322 - GtkFileChooser performance problems (aka let's do it again)
GtkFileChooser performance problems (aka let's do it again)
Status: RESOLVED DUPLICATE of bug 166601
Product: gtk+
Classification: Platform
Component: Widget: GtkFileChooser
unspecified
Other All
: Normal normal
: ---
Assigned To: gtk-bugs
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2005-04-28 17:12 UTC by Morten Welinder
Modified: 2005-06-09 18:15 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Gzip'd "truss -d" output (150.95 KB, application/x-gzip)
2005-04-28 19:57 UTC, Morten Welinder
Details
Gzip'd "truss -d" output, take II (125.28 KB, application/x-gzip)
2005-04-28 20:03 UTC, Morten Welinder
Details

Description Morten Welinder 2005-04-28 17:12:36 UTC
The file chooser takes way too long to show up.  It really should pop up
right away, i.e., in less than 0.1s.  We could do that 15 years ago in msdog,
so it is not an unreasonable goal.

Low-hanging fruit:

1. Don't stat every single file in the starting directory twice.  Really.
   (I believe I have fixed that one before.)  It would be nice to get a
   regression test for this problem.

2. If possible, don't stat using /full/path/names.  In the hot-cache case
   that is N times slower than it should be where N is the number of path
   components.  A lot more if non-local filesystems are involved.
Comment 1 Morten Welinder 2005-04-28 19:27:11 UTC
Problem 1 can be seen by putting
    g_print ("%s: stat-ing \"%s\"\n", G_STRFUNC, fullname);
into cb_fill_in_stats and running tesetfilechooser.

This appears to be caused by fix the for bug 145470.
Comment 2 Morten Welinder 2005-04-28 19:57:10 UTC
Created attachment 45801 [details]
Gzip'd "truss -d" output

Federico wanted an annotated strace, so there.

All functions in filechooserdefault, filesystemunix, and pathbar got
WHERE_ARE_WE; added, defined as...

#define WHERE_ARE_WE int _dummy_ = access ("::" __FUNCTION__, F_OK)
Comment 3 Federico Mena Quintero 2005-04-28 20:01:02 UTC
See also bug #154394
Comment 4 Morten Welinder 2005-04-28 20:03:44 UTC
Created attachment 45802 [details]
Gzip'd "truss -d" output, take II

ok, that got so slow that FOLDER_CACHE_LIFETIME was too small.	(That does not
trigger in real life.)	I upped it.

For the record, the trace is for running testfilechooser and pressing cancel.
Comment 5 Federico Mena Quintero 2005-04-28 20:06:32 UTC
I think we can mark this as a general duplicate of bug #166601.
Comment 6 Matthias Clasen 2005-06-09 18:15:26 UTC
Lets do it then...

*** This bug has been marked as a duplicate of 166601 ***