Performance

MicroXwin was tested on Slackware 10.2 distribution running on Via chipset based Athlon 1.1 GHz motherboard. Performance was compared against the standard Xorg server running on frame buffer device at 1024x768x16 resolution. X11perf and gtkperf was used to measure graphics performance.

Memory Requirements

The storage and run-time memory requirements for MicroXwin is much lower than Xorg server. The sizes of the main compoenents for x86 are:

  • LibX11.so is 720K bytes.
  • LibXext.so is 7K bytes.
  • Kernel module x11.ko is 200K bytes.

The Xorg server has a disk footprint of 1.8MB with run time memory usage of 12MB. This is much higher than the roughly 300Kbytes of kernel memory used by the kernel module. Besides that MicroXwin does all bitmap rendering in the kernel and needs only a small set of SNF fonts. The smallest MicroXwin distribution can fit within ~ 1MB of disk space.

Speed and Latency

All the test comparison between standard Xorg server and MicroXwin where made under identical conditions. The only changes between the benchmarks where the usage of relevant graphics libraries. gtkperf with Xorg took 10.69 seconds versus MicroXwin which took 7.6 seconds a speed up of 40.6%.

These are the results of x11perf to write 100 X 100 image.

On Xorg server x11perf -shmput100. Reports 9280 reps/second. Sync time adjustment is 0.0351 msecs. While x11perf -sync -shmput100. Reports 3120 reps/second. Sync time adjustment is 0.0643 msecs.

On MicroXwin x11perf -shmput100. Reports 15,100 reps/second. Sync time adjustment is 0.0016 msecs. The -sync option gives the same results. This is an improvement of 62% for asynchronous display or 384% for synchronous display of images.The synchronous performance of Xorg server is much worse. A media player would have to call XshmPutImage()/XPutImage() followed by XFlush()/XSync() to ensure that the image is displayed at the current time. Atleast for this case synchronous operation is required for correctly timing the image display.

x11perf estimates the round trip delay to the server. As can be seen the latency is much lower for MicroXwin.

Rather than using canned one-way test, a simple real world test case that can easily measures graphics performance is scrolling. Scrolling a web page not only tests how fast text, graphics and images are rendered but also how fast events are processed. Scrolling under MicroXwin is much faster and smoother.

Conclusions

X11perf/gtkperf test results indicate that MicroXwin is much faster. However both these tests indicate one-way performance where client streams commands to the X server. The standard X server performance degrades significantly with synchronous and round-trip requests. MicroXwin performs equally well on these.

MicroXwin performs much better than standard X server because.

  • Round trip and Synchronus request ar even faster on MicroXwin.
  • Round trip delay as measured by x11perf is much smaller.
  • Kernel module x11.ko has higher priority than user space X server.