
On Mon, Feb 6, 2012 at 17:31, Norbert Zeh
Allen S. Rout [2012.02.06 1453 -0500]:
But I've noticed a certain lack of responsiveness when I make sweeping motions with the mouse, and I've now done a bit of an experiment that seems to narrow it down.
I am not entirely certain what inside the decoration module would create such massive delays - the CPU usage on one of my cores goes up to 50% when I'm in the endless loop. I'm not too keen to dig into it because this module is a monster, but it may simply be necessary.
Two things that come to mind are that (a) decoration windows are, somewhat uselessly, part of the StackSet and must be traversed whenever the StackSet is searched for the newly focused window; (b) Decoration registers interest in all events on decoration windows, specifically including mouse events IIRC, and (usually pointlessly) invokes a (usually stub) handler on such events. BTW, the tabs module really needs to be rewritten not to use Decoration; not only is Decoration inefficient, as above, but tabs are actually a rather poor fit for Decoration because most of the Decoration code assumes decoration windows take up space near the real window, and odd things happen with respect to space allocation when they are instead located somewhere else. (I have local hacks around that which fix most of the odd things with respect to figuring out the available workspace area, but not all of them; and it still leaves the performance issues.) -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms