|
From: | David Chisnall |
Subject: | Re: gui 'slow' with remote X ? |
Date: | Sun, 23 Nov 2008 22:21:41 +0000 |
On 23 Nov 2008, at 22:11, Riccardo Mottola wrote:
Nice to see there is another user. FOr me, besides, GTK2 is slow too.Cairo and Art are going to be slow. No work around. Try the faithful xlib backend, which I use regularly. It will be faster, since instead of shuffling bitmaps, it lets the server do the work, like font drawing. If you disable anti-aliasing and use the fonts available on your local machine (or have a font server) the speed increase will be very good. GWorkspace is ifne to use, as are text application, as is Gorm or ProjectCenter.
Arts and Cairo seem to be a lot slower than they need to be. They don't appear to be using XFixes / XDamage to only update the modified parts of the window, which is a shame because this information is explicitly provided by the APIs in AppKit (these two extensions, used correctly, can make remote X11 much more responsive, as can double- buffering using server-side Pictures).
That said, I've watched my network monitor with remote X and it doesn't seem to be shifting much traffic. The issue largely appears to be that it is using the xlib APIs which do no latency hiding, which means that it spends a lot of time waiting for round trips. Even on a network with a few ms RTT this can become painfully slow since simple operations can require a few dozen round trips.
There isn't much that can be easily done about this, unfortunately. Longer-term, the solution is to move to XCB, but the documentation for XCB is practically non-existent (on the plus side, the API is almost exactly the same as the protocol, so the protocol docs apply).
The first step towards doing this would be to check that GNUstep compiles with the new xlib which is built on top of XCB. From this it is possible to do an incremental port. This is worth doing long-term, since xlib is not going to be getting APIs for newer parts of the protocol much longer.
One thing will be awful though: scrolling. I think GNUstep is quite inefficient there, it makes a LOT of X11 calls, art is less affected when it uses xshm. On a slower machine you will see that X11 can sometimeseat up to 50% of your CPU for some operations..
I think the problem with this is that it uses client-side copying, rather than doing the operation on the server side.
David
[Prev in Thread] | Current Thread | [Next in Thread] |