Updated Java Virtual Machine for real-time and embedded systems - Embedded.com

Updated Java Virtual Machine for real-time and embedded systems


Munich, Germany – JamaicaVM 3.2 has a new scheduler supporting real-time priorities within the VM on operation systems which do not provide native real-time priorities, such as Linux. Thread switch latency remains in the micro second range as in earlier versions. Other performance improvements include memory management, the interpreter, and the JNI native API calling interface. The average time needed for object allocation has been significantly reduced compared with the previous versions of JamaicaVM, giving graphic applications particular benefit.

ThreadMonitor for JamaicaVM 3.2

The default options of JamaicaVM have been improved to provide good performance out of the box. Using additional optimizations, the performance can be enhanced further and, depending on the application, a footprint of smaller than 800 Kbytes is possible. The software offers an extensive tool chain for optimizing both an application and its VM environment. Among other things, it provides an optimizing static compiler and a profiler which work hand in hand. First, the profiler analyses a Java application and records the performance of each method used by the application. Then, the compiler can be set to compile just the most critical methods directly in hardware specific native code. The execution time of the program is thereby significantly improved without drastically enlarging the application. As Java byte code is considerably more compact than machine code for common architectures, it normally makes sense not to compile the whole application. With the aid of the profiler the best ratio of compiled to interpreted code can be used to optimize both performance and code size. For example, compiling 20% of time critical application code and interpreting the rest often yields most of the performance gains possible through compilation.

The detection of runtime errors has also been extended. If a deadlock occurs, JamaicaVM now throws an exception while the application is running, enabling the user to easily locate the error in the application. Furthermore, fatal POSIX signals can now be handled as RTSJ events, allowing even segmentation faults in native code of the application to be handled. Both features are very useful for debugging and robustness.

The interpreter of the new Version is approximately 25% faster. Important system libraries, such as ZIP and SSL, have been optimized as well. The calling of methods written in C by the Java Native Interface has become more than twice as fast as it was in earlier versions. JamaicaVM currently supports 14 operating systems on 10 hardware architectures and is used by a multitude of customers in the industrial area.

In tandem with the new JamaicaVM, aicas has developed a ThreadMonitor (figure) for use with JamaicaVM 3.2. With the aid of this new tool, a Java application running on the target system can be monitored across a TCP/IP connection within the accuracy of the CPU cycle counter. This gives a developer a clear picture of how threads interact in any application running on the JamaicaVM. Evaluation versions of JamaicaVM 3.2 are available on the Aicas website.

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.