NAME

x11perf - X11 server performance test program

SYNTAX

x11perf [ -option ... ]

DESCRIPTION

The x11perf program runs one or more performance tests and
reports how fast an X server can execute the tests.
Many graphics benchmarks assume that the graphics device is
used to display the output of a single fancy graphics appli-
cation, and that the user gets his work done on some other
device, like a terminal. Such benchmarks usually measure
drawing speed for lines, polygons, text, etc.
Since workstations are not used as standalone graphics
engines, but as super-terminals, x11perf measures window
management performance as well as traditional graphics per-
formance. x11perf includes benchmarks for the time it takes
to create and map windows (as when you start up an applica-
tion); to map a pre-existing set of windows onto the screen
(as when you deiconify an application or pop up a menu); and
to rearrange windows (as when you slosh windows to and fro
trying to find the one you want).
x11perf also measures graphics performance for operations
not normally used in standalone graphics displays, but are
nonetheless used frequently by X applications. Such opera-
tions include CopyPlane (used to map bitmaps into pixels),
scrolling (used in text windows), and various stipples and
tiles (used for CAD and color half-toning, respectively).
x11perf should be used to analyze particular strengths and
weaknesses of servers, and is most useful to a server writer
who wants to analyze and improve a server. x11perf is meant
to comprehensively exercise just about every X11 operation
you can perform; it does not purport to be a representative
sample of the operations that X11 applications actually use.
While it can be used as a benchmark, it was written and is
intended as a performance testing tool.
As such, x11perf DOES NOT whittle down measurements to a
single ``HeXStones'' or ``MeXops'' number. We consider such
numbers to be uninformative at best and misleading at worst.
Some servers which are very fast for certain applications
can be very slow for others. No single number or small set
of numbers are sufficient to characterize how an X implemen-
tation will perform on all applications. However, by
knowledge of your favorite application, you may be able to
use the numbers x11perf reports to predict its performance
on a given X implementation.
XFree86 Version 4.5.0 1
X11PERF(1) UNIX Programmer's Manual X11PERF(1)
That said, you might also want to look at x11perfcomp(1), a
program to compare the outputs of different x11perf runs.
You provide a list of files containing results from x11perf,
and it lays them out in a nice tabular format.
For repeatable results, x11perf should be run using a local
connection on a freshly-started server. The default confi-
guration runs each test 5 times, in order to see if each
trial takes approximately the same amount of time. Strange
glitches should be examined; if non-repeatable one might
chalk them up to daemons and network traffic. Each trial is
run for 5 seconds, in order to reduce random time differ-
ences. The number of objects processed per second is
displayed to 3 significant digits, but you'll be lucky on
most UNIX system if the numbers are actually consistent to 2
digits. x11perf moves the cursor out of the test window; you
should be careful not to bump the mouse and move it back
into the window. (A prize to people who correctly explain
why!!).
Before running a test, x11perf determines what the round
trip time to the server is, and factors this out of the
final timing reported. It ensures that the server has actu-
ally performed the work requested by fetching a pixel back
from the test window, which means that servers talking to
graphics accelerators can't claim that they are done, while
in the meantime the accelerator is painting madly.
By default x11perf automatically calibrates the number of
repetitions of each test, so that each should take approxi-
mately the same length of time to run across servers of
widely differing speeds. However, since each test must be
run to completion at least once, some slow servers may take
a very long time, particularly on the window moving and
resizing tests, and on the arc drawing tests.
All timing reports are for the smallest object involved.
For example, the line tests use a PolyLine request to paint
several lines at once, but report how many lines per second
the server can paint, not how many PolyLine requests per
second. Text tests paint a line of characters, but report
on the number of characters per second. Some window tests
map, unmap, or move a single parent window, but report on
how many children windows per second the server can map,
unmap, or move.
The current program is mostly the responsibility of Joel
McCormack. It is based upon the x11perf developed by Phil
Karlton, Susan Angebranndt, Chris Kent, Mary Walker, and
Todd Newman, who wanted to assess performance differences
between various servers. Several tests were added in order
to write and tune the PMAX (DECStation 3100) servers. For a
XFree86 Version 4.5.0 2
X11PERF(1) UNIX Programmer's Manual X11PERF(1)
general release to the world, x11perf was rewritten to ease
making comparisons between widely varying machines, to cover
most important (and unimportant) X functionality, and to
exercise graphics operations in as many different orienta-
tions and alignments as possible.