[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: Performance testing (pass 1)

On Fri, 2003-09-26 at 13:06, Joe wrote:
> One thing that people fail to realize is that X11 is fairly heavyweight 
> - it's a complex and sophisticated client/server, network-transparent 
> windowing system, whereas on windows you have a simple pc gui: 
> single-user, and local-only.  you're not really comparing apples to apples.

Not really accurate. When the X11 protocol was stamped final, it ran
just fine on hardware you wouldn't even think of using today. X11 hasn't
changed in fundamental ways since then.

"Network transparency makes it heavier" is just not true, invented
because someone thought it sounded logical, and repeated ever since.
If you know the code and architecture of the desktop it doesn't sound
logical anymore, and profiles don't seem to support this view either.

The memory usage of your X server has to do with apps allocating a ton
of windowing system resources. If those resources were allocated with
system calls instead of protocol requests, they would still be
allocated. The CPU usage has to do with performing the windowing
operations, not with requesting them.

UNIX domain sockets on Linux are not hugely more expensive than memcpy,
and X protocol is fairly compact. People hear "network" and think
"Internet", but that isn't accurate. The latency is tiny. We are copying
from one app to another in system RAM, not going out on any wires.

Even if the latency were high performance can be pretty reasonable; try
NX from nomachine.com sometime (after the slashdotting dies down, they
were just on there I think).

X seems slower than Windows yes - a) it often is because of bad drivers
or whatever b) many of the apps aren't performance tuned properly;
profilers don't show window system resource usage c) it lacks facilities
to make things look smooth/unflickery, extensions are needed for this.
There are surely other reasons.

You can find huge threads on this in xfree86, etc. archives if you look.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]