Re: Thin Client Benchmark Testing
- From: Soeren Sandmann <sandmann daimi au dk>
- To: Federico Mena Quintero <federico ximian com>
- Cc: performance-list gnome org
- Subject: Re: Thin Client Benchmark Testing
- Date: 02 Nov 2005 02:41:09 +0100
Federico Mena Quintero <federico ximian com> writes:
> On Tue, 2005-11-01 at 13:01 -0500, Dave Richards wrote:
> > Our most common device is an NCD Explora 451, circa 1996. Up to GTK
> > 2.6 they have worked fine. They obviously aren't as fast as new
> > devices, but work well for the GNOME desktop, Evolution, OpenOffice
> > and Firefox.
> > Our new thin clients are HP devices, running 800Mhz Crusoe chips with
> > a mini-Linux kernel on them.
> I just ran a quick test on my ridiculously fast P4.
> If I use "X -extension RENDER :2" to disable the RENDER extension, and
> run a gnome-session in that server, everything is *incredibly* slow.
> We seriously suck when the RENDER extension is not presesnt.
> I don't know yet why that happens. Interestingly enough, running
> sysprof shows that *all* the time (94%) goes to the X server. I wonder
> why that happens, since, well, aren't we falling back to doing
> everything client-side?
The key thing to understand is this:
Reading from video memory is *incredibly* slow.
This shows up in various ways. When RENDER is implemented by the X
server in software this is what happens:
To draw one pixel of an antialiased glyph, the X server has to (a)
read the existing pixel, (b) blend that pixel with the alpha value for
the glyph pixel, then (c) write the result back to the screen.
And the killer is (a). (b) and (c) don't matter at all.
The latest versions of X.org are careful to read as little as possible
back from the video card (only the translucent pixels basically), but
they can't avoid it completely. Perversely enough, the better video
card you have, the more likely it is that it has lots of memory, and
the worse performance you get.
If the X server doesn't have RENDER at all, the situation is even
worse, because then the client does GetImage of the entire glyph
area, ie., even more reading out of the framebuffer. So I'll bet those
94% are spent in ProcGetImage pretty much exclusively.
You can make the X server put pixmaps in system memory by using:
on most cards this will cause RENDER to run much, much faster. It will
also cause other operations, such as drawing the background to slow
] [Thread Prev