Problem

Why is Java so much slower on a remote X display?

Solution

It is more than a pure X performance problem.

It is the way Java uses X.

Java is tailored to work on the local display with the client-server model in mind.

They have therefore implemented the X interface heavily bitmap based, i.e. Java GUIs are not drawn using efficient X directives but using bitmaps.

Bitmaps are efficient on the local display, because modern PC graphic cards are powerful in this respect.

But sending bitmaps over the network with the X protocol is very inefficient. Therefore Java is really very much penalised when run on a remote X display.

The correct way of running Java GUIs, in the spirit of Java, is to run them locally in the client-server spirit. This is fully supported by ACS. More over we can run the GUIs on Windows desktops, keeping in mind that Java is much better optimised for Windows than for Linux/X

-- GianlucaChiozzi - 25 Jul 2005