Check out the new USENIX Web site. next up previous
Next: 13 Conclusion Up: JaRTS: A Portable Implementation Previous: 11 Memory management

12 Results

Up to now the results are promising:

Latency periods:
As expected the interrupt latency periods are nearly the same as the latencies of interrupt handlers implemented in C. The average time between a hardware interrupt (at the parallel port of an 150 MHz Pentium) is 7 µs for interrupt service routines in C. The Java version needs about 9.5 µs. The Java overhead of 2.5 µs is acceptable for most real-time systems.
Performance was tested with a sieve of Eratosthenes, which calculates prime numbers, a loop test sorting values and a simple test of logical decisions.

Table 1: benchmarking results
  Sieve Loop Logic
JaRTS 180 227 933
CVM 60 61 60
Sun 1.3 285 1098 769

Table 1 shows the results (score, higher values are better). Compared to Sun's HotSpot Client VM (1.3) the code generated by JaRTS was about 20% faster for the logic test. The other tests ran about 58% (sieve test) up to 366% (loop test) slower. Compared to Sun's CVM [20] (on which the TimeSys real-time reference implementation is based) JaRTS is 3 times up to more than 15 times faster.

Improvements of the JaRTS performance should still be possible since there was no effort in optimizing performance, yet.

There are only a few files containing platform dependent code. This code contains wrappers for handling threads, mutexes and semaphores and the code controlling the FIFOs for Baseline-Core communication. Because the JaRTS compiler generates platform independent ANSI-C code it can be ported to any system providing an ANSI-C compiler easily. Due to the separation of real-time and non-real-time parts it can also be run on systems using Interrupt Abstraction.
Code size:
The Core run-time currently has a footprint of about 700 kilobytes including the Core libraries. This is about the same size as current MIDP [19] implementations, used for mobile phones. Until now there were no optimization efforts in this area, so there is still space for improvement.

next up previous
Next: 13 Conclusion Up: JaRTS: A Portable Implementation Previous: 11 Memory management
Urs Gleim 2002-05-29