[xmonad] Issue 179 in xmonad: Tabbed Layout doesn't scale as well as it could

codesite-noreply at google.com codesite-noreply at google.com
Fri May 2 05:51:26 EDT 2008

Issue 179: Tabbed Layout doesn't scale as well as it could

Comment #7 by andrea.rossato:
clem... at endorphin.org:

 > Thank you andrea. Your patch practically fixed the problem for me. 
There still seems
 > to be an issue that makes this non-linear, but at least xmonad 
recovers now from the
 > shocking event that firefox-session-resume throws 50 windows at it at 
once (it takes
> about 5-6 seconds to get back to normal even on my old box).

I don't know if you had the opportunity to do some testing yourself
(maybe you can even suggest some better ways of debugging the
problem), but the test method I suggested in the
non-constructive-and-thus-deleted comment makes me feel you might be
not entirely right when you seem to suggest it is tabbed/decoration
being non liner.

Attached you'll find the result of opening ~150 terminals. Time is
taken after the Simplest layout returned, after Tabbed returned, and
at the end of Operations.windows.

Just a sample:

1. first terminal
Simplest   - 43.823897000000
tabbed     - 43.832515000000
Operations - 43.845520000000

Simplest   - 45.432586000000

2. ~80 terminals
Simplest   - 15.544721000000
tabbed     - 15.722086000000
Operations - 16.799534000000

Simplest   - 16.801581000000

3. the last terminals (at about ~150):
Simplest   - 13.104917000000
tabbed     - 13.476366000000
Operations - 15.990074000000

Simplest   - 15.992864000000
tabbed     - 16.394499000000
Operations - 19.342026000000

Simplest   - 26.586562000000
tabbed     - 26.968268000000
Operations - 29.499717000000

It seems quite clear, to me, that (tabbed - Simplest) is growing
slower than (Operations - tabbed), which makes me think it may be the
moveResizeWindow and the restackWindows calls that behave

Now, if there is a substantial difference between 0.6 tabbed and 0.7
tabbed it is the fact that the decoration windows are now returned, by
the decoration modifier, in the (window,rectangle) list. Even though
at that time my mails were marked as spam, I tried to discuss with
other developers about this design decision. Still I believe it is a
necessary one: if you remember, the old tabbed had issues in
interacting with the floating layer. Moreover it was not generalizable
and its decoration system could not be used to support a decorated
floating layout - which needs restackWindows to be called with *all*
visible windows.

I only discussed this problem with the original Tabbed author, David
Roundy, and he agreed with me.

Anyway, the fact is that there is not evidence, so far, that tabbed
and the decoration framework it is based upon is O(n^2) by design, as
Braden stated, using Spencer's authority to support his claim.

What I mean, is that there seems to be room for a deeper analysis. I
tried in the past (around 0.3) to do some profiling, but I wasn't able
to get useful information, especially when xlib calls seem to be a
major issue. Still auditing the code - or at least reading it - should
be done without prejudice, keeping in mind that a layout like tabbed
has far reaching effects and may display bugs quite difficult to
relate to.

Instead, this issue was described as not even worth debugging ("these
changes are in the "rewrite" category, not the "tweak" one"). I wonder
if this replay is unrelated to the fact that the author of such an
ugliness, obviously due to ignorance and/or lack of experience - what
else? -, is ...me.

And I wonder if removing the comment where the author of the code
provided some evidence that maybe the answer could be indeed a bit
more complicated, or simpler, than his own incapacity, is really
unrelated to flamebait and emotional judgements...

Which brings me to Spencer:

Removing my comments and my patches, invalidating the issues I report
it is not damaging me. You have the password and you are the ruler.
You decide when ironically picturing the way you reached the
conclusion that Decoration was rotten by design is editorializing or not.

Still, by repeatedly and emotionally deleting everything related to me
you are hurting your users and the trustworthy of your project. Do you
want some evidence?

1. in a, say, tabbed layout open a few windows;
2. run: xterm -name ""

oops, what happened?

Take it easy (you really should: it's just a WM).

	issue179_data.txt  13.6 KB

You received this message because you are listed in the owner
or CC fields of this issue, or because you starred this issue.
You may adjust your issue notification preferences at:

More information about the xmonad mailing list