This is xbench; a benchmark for X servers

xbench gives you a chance of measuring tuning, enhancements and
comparing different server implementations/machines.

xbench is a graphic test - it does not test overall workstation
performance.

Xbench has been written because think that numbers are better than
works like "this machine performs good/bad/wonderful ...."  :-).

read man-page and documentation for more detail.

How to make xbench
==================

extract all files with:

	sh Part01
	sh Part02
	sh Part03
	sh Part04

for those who have imake and an MIT-like directory tree, I have
included an Imakefile.

Others can rename mkfile to Makefile.
(I did not name it Makefile since imake overwrites it)

You may have to change the Imakefile/Makefile for your specific machine;
(look for the "LIBS=", "CFLAGS=" and "TROFF=" lines)

There shouldn't be any problems with compiling xbench.
(it compiles without problems on uVax, SUN3, our 4.2 based 9733 systems,
 and on 386's running Interactive System 5)

For a first test, run 

	xbench -ask -nruns 1 -timegoal 5

and answer "s" (sync) to every question. (see manual and documentation)
Look carefully at the display to see if your server cheats
(some servers draw solid lines instead of dashed ones ...).

Now you are ready to run the real bench with:

	xset s off      (screensaver off !)
	xbench -ask >results/<myMachine>.out

Answer "n" to all tests which didn't work well in the first run.
I have also prepared a script called "script.run" which you can
pipe into xbench with:

	xbench -ask <script.run >results/<myMachine>.out

(do not forget to edit the first 4 lines in this script)

The real test should be run without syncing - but be prepared: it can run
for hours on slow servers since many commands get buffered in the 
communication lines; problematic are mainly the wide-line, arcs,
and stipple stuff. If they are too slow on your server, run
those tests with syncing on.


This creates the raw-data file. If you have more than one server
to test, repeat the "xbench" command for every server.

To get a nice summary listing which includes your xStone rating type in:

	make summary.ms detail.ms

this creates the files "summary.ms" and "detail.ms"
which must be piped through "tbl" and "[tn]roff".

If you have set up the "TROFF=" line correctly, you can also type:

	make print

to get a nice formatted document which includes all benchmark data
and a sorted summary covering all tested servers.

(the information is extracted and computed with the help of some awk(1)-
 scripts - they are all found in "scripts/". Of special interrest is:

    xstones.awk      which computes the xstone rating from the
		     raw data

    summary.awk      which creates a summary line in tbl(1)/nroff(1)
		     format

    detail.awk       creates a detail page in tbl(1)/nroff(1)
		     format

see the Imakefile and the generated tmp/makefile for more info)

The documentation can be printed with:

 	tbl xbench.doc | troff -Twhatever -ms | your_printer

To get a feeling on how the different servers perform, I'd be very
happy to see your benchmark-data on the net; would someone like to
collect the data and compile a complete list (like the dhrystone-list) ?
(but do not forget to type in the server/client/communication and note
 fields)

To give you some start, I have included the benchmark data for those
machines/servers I have access to at this moment; they include:

    DEC gpx         running untuned MIT R2 Xqdss server
    sun3-160        running untuned MIT R2 Xsun server
    sun3-50         running untuned MIT R3 Xsun server
    siemens 9733    running our tuned R2 server



Have fun.

			Claus

Claus Gittinger
System Software Consulting

currently at:

Siemens AG Munich
Dep D-ST-SP4
D-8000 Muenchen/Neuperlach
Otto-Hahn-Ring

email: unido!sinix!claus

Suggestions, enhancements welcome ....
flames to /dev/null please !
