Wednesday June 08, 2005
To verify and measure this, I designed and ran some performance tests in order to compare the time and bandwidth usage of GNOME (JDS) with that of CDE on Sun Rays. The tests measure the time it takes to display data using various desktop applications: Browser, StarOffice and Terminal.
I created a large (over 1MB) HTML file, containing a mix of headings, paragraphs, fixed text and images, and used it in 3 tests on a Sun Ray 100:
cat of the file in the Terminal"tcpdump" utility.
Instead of merely counting the number of packets in and out of the
Sun Ray client, I counted the total number of bytes as well as the
total length of time for each test. To achieve this, I wrote a small
Python script to process the ASCII output of a tcpdump session
and print a table displaying the time and total number of bytes
transferred for each test.
To ensure repeatability and detect any variations I ran each test 3 times.
Before each test I logged in to a new session so that any memory leaks or other potential performance problems from an older login may be avoided.
I also ensured that the screen remains static before each test, eg: by having the GNOME clock applet not display seconds, and by having the terminal not use a flashing cursor. This way I could ensure that network traffic before and after each test consists of a constant (roughly every second) flow of small (40 byte) keep-alive packets.
To minimise variations in human interaction, I attempted to make
the tests require as little human intervention as possible, and to
make each test fairly long so as to make those variations negligible.
Eg: The terminal test does a "cat" of a large file instead of
requiring the user to perform a set of command-line operations.
Some tests do require human intervention, Eg: the browser test
requires the user to constantly press the PAGE-DOWN key to keep
the page scrolling.
I ran the tests on CDE and JDS on the Solaris Sun Ray servers, and JDS on the Linux Sun Ray server (since Linux does not have CDE). Then I set the GNOME system fonts on JDS to Monochrome and repeated the tests. This speeded up the terminal and browser, however it doesn't speed up Star Office, which renders its own fonts. On Solaris, StarOffice is very fast so I didn't change fonts. However, on Linux I changed the Star Office fonts to use non-scalable fonts, ie. from "Thorndale" and "Albany" to "Fixed" under Tools->Options.
The following result table was generated by processing the dump files with a python script. To reduce the space of the table, I have only included results for Linux and Solaris x86 (Solaris sparc had similar results to Solaris x86). The green lines indicate the total time taken for each test, and the brown lines indicate the total number of bytes transferred between the Sun Ray client and server during that time.
The CDE results vary significantly from a very slow Browser to a very fast Terminal.
On JDS, both the Browser and Terminal are slow. But when set to use Monochrome fonts the performance of all three tests are pretty similar - on both Linux and Solaris.
So, the question for JDS is whether the monochrome results are acceptable in terms of performance, and then also whether they are acceptable in terms user experience: we can't have people using monochrome fonts that render faster but look bad. Our usability engineers should see if there are monochrome fonts that are of an acceptable quality to ensure that users are able to enjoy using JDS on a Sun Ray.