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 60516 - extreme panel-1.4 sloth and X traffic load with non-GNOME-compliant wm
extreme panel-1.4 sloth and X traffic load with non-GNOME-compliant wm
Status: VERIFIED INCOMPLETE
Product: gnome-panel
Classification: Other
Component: panel
1.5.x
Other Linux
: Normal normal
: ---
Assigned To: Panel Maintainers
Panel Maintainers
Depends on:
Blocks:
 
 
Reported: 2001-09-14 07:29 UTC by Nix
Modified: 2009-08-15 18:40 UTC
See Also:
GNOME target: ---
GNOME version: 2.0



Description Nix 2001-09-14 07:29:14 UTC
At the end of last year this was implemented:

Sat Dec 30 05:27:19 2000  George Lebl <jirka@5z.com>

        * xstuff.[ch], global-keys.c, swallow.c:  Use gwmh for everything
          here, this greatly reduces the X traffic as the way things were
          done before was actually quite wasteful.

I hate to say it, but the way it's being done now is just as wasteful :(
there are multi-second delays and immense X traffic on this machine
whenever any window is manipulated in just about any way, which is,
well, a bit off. A profile of a ten second run consisting of

- starting panel
- kicking up an xterm and dragging it around the screen for a few seconds
- logging out of the panel

was

Each sample counts as 0.01 seconds.
  %   cumulative   self              self     total           
 time   seconds   seconds    calls  us/call  us/call  name    
 33.33      0.01     0.01    11778     0.85     0.85  check_client
 33.33      0.02     0.01       15   666.67  1333.33  hack_a_client_list
 33.33      0.03     0.01                             wm_protocol_check_support
  0.00      0.03     0.00     2142     0.00     4.67  find_input_client
  0.00      0.03     0.00     1309     0.00     0.00  get_typed_property_data
  0.00      0.03     0.00      396     0.00     0.00  panel_widget_get_type
  0.00      0.03     0.00      362     0.00     0.00  basep_widget_get_type
  0.00      0.03     0.00      314     0.00     0.00  button_widget_get_type
  0.00      0.03     0.00      256     0.00     0.00  do_grab_key

Note that the machine spent more than half of that ten seconds inside
panel when I wasn't doing anything that should have affected it
overmuch, especially since I'm running a non-GNOME-compliant window
manager (since the WM is the only thing that should concern itself with
the every-window case, IMHO)

If the code is to be believed, in that ten seconds XQueryTree() was
called *eleven thousand times*. No wonder the network was saturated :)

Might I suggest that the code for the GWMH_DESK_INFO_CLIENT_LIST in the
non-gnome-compliant-WM case needs a tiny bit of optimization? I don't
know this code at all, and I don't use the desk guide or anything else
that could benefit from this info, so I've just ripped the code out
completely... but if there's anything I can do to help eliminate this
horrible time sink, please say.


(I venture to suggest that this sink is *so* bad that nobody who's not
already using a GNOME-compliant WM would start to use the panel --- and
since new GNOME users don't necessarily have a GNOME-compliant WM, this
may be driving off a fair number of new users, and may explain a good
bit of the `GNOME is really slow' flamage that's out there. I thought it
was just ill-educated gunk, but this could explain a lot of it...)
Comment 1 Luis Villa 2002-01-22 19:57:46 UTC
Adding relevant keywords. You can filter on the phrase 'luis doing GNOME2 work'
to catch all instances of this so that you can ignore them.
Comment 2 Dan Winship 2002-04-08 16:44:32 UTC
I occasionally saw this on my NetBSD machine even though I was
using a GNOME-compliant wm (sawfish). In fact, it's one of the
main reasons I switched from NetBSD to Linux at work, because
this was making my machine unusable, and I didn't have time to
debug it.

Note that "whenever any window is manipulated in any way" included
just changing the keyboard focus.
Comment 3 Mark McLoughlin 2002-04-15 12:08:02 UTC
kay, this seems like a problem with the deskguide code, which we're
not using anymore. Could you by any chance try this out with the 2.0
panel which uses libwnck ?

I'd actually really like to see this kind of profiling done on that
code ...
Comment 4 Vincent Untz 2002-10-22 18:33:27 UTC
ping ?
Comment 5 Elijah Newren 2002-12-05 17:47:00 UTC
Adding danw to the cc list so he can see Mark's question and hopefully
respond.
Comment 6 Dan Winship 2002-12-05 17:49:55 UTC
the machine I had the problem on got reinstalled to linux a long time
ago, and i don't see the problem any more
Comment 7 Vincent Untz 2002-12-05 21:25:34 UTC
=> closing
If someone can do the profiling: feel free to reopen.