GNOME Bugzilla – Bug 60516
extreme panel-1.4 sloth and X traffic load with non-GNOME-compliant wm
Last modified: 2009-08-15 18:40:50 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...)
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.
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.
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 ...
ping ?
Adding danw to the cc list so he can see Mark's question and hopefully respond.
the machine I had the problem on got reinstalled to linux a long time ago, and i don't see the problem any more
=> closing If someone can do the profiling: feel free to reopen.