Escher by numbers
I did some preliminary and very simplistic benchmarks with the current development version of Escher vs. the released version 0.2.3.
The benchmark is doing 1,000,000 operations per run (e.g. 1,000,000 lines or rectangles) with random color and random coordinates.
This is measured using JDK6 Hotspot VM.
| Test | SVN Local | SVN TCP | 0.2.3 TCP |
|---|---|---|---|
| lines | 6765 | 7938 | 9291 |
| rects | 6812 | 8274 | 9363 |
| fill rects | 58072 | 59625 | 113316 |
For comparison, the following is measured with JamVM:
| Test | SVN Local | SVN TCP | 0.2.3 TCP |
|---|---|---|---|
| lines | 31992 | 35851 | 232868 |
| rects | 32240 | 36250 | 232809 |
| fill rects | 59171 | 59746 | 231549 |
Update : I’ve written an equivalen benchmark for AWT and did a test on JDK6:
| lines | 6240 ms |
| rects | 6332 ms |
| fill rects | 44512 |
That’s still slightly better than Escher, but pretty close already. With some more protocol enhancements and the usage of NIO, there is hope that Escher can catch up with JDK6 performance though.
May 7th, 2007 at 5:03 pm
Small update: removing the synchronization boosts performance on JamVM to 27850/28133/59310 ms. It doesn’t really do much on Sun’s JDK6.
August 24th, 2007 at 4:56 pm
It would be interesting how much time is spent inside the application itself and how much is “lost” in kernel and xorg.
lg Clemens