Java remains a hot topic, as evidenced by the goings-on at last month's Embedded Systems Conference (ESC) in San Francisco. Real-time Java performance is improving to the point where it matches applications written in C. Sun and Aonix offered up some interesting numbers comparing real-time Java performance with C at the show.
This performance growth reminds me of C's challenges many years ago. At that time, getting developers to move from assembler to C was a chore. C's dominance in embedded applications today illustrates the maturation of C compilers and runtime systems. Assembly language programming is a dying art.
Java, now 10 years old, has been quicker to match C's performance while retaining Java's better development environment. Many developers still will be slow to consider Java instead of C, but the framework is available.
So how does Java get supercharged? The runtime environment is tuned through the Real Time Specification for Java (RTSJ). This brings three thread types to the mix, including two real-time versions. One forgoes garbage-collected memory, essentially putting it on the same playing field as C. Objects are typically allocated when the application starts, as with C. So, it then becomes a matter of the compiler churning out code that matches a C compiler's efficiency.
PREDICTABILITY OVER SPEED
Many real-time applications don't necessarily require fast execution, but they should be predictable. Again, RTSJ makes this possible. Sun's presentations at the conference highlighted these improvements and backed them up with new performance numbers.
Another major Java player, Aonix, announced its PERC 4.2 clean-room virtual machine (VM), which targets real-time systems. The system performance improvements put this J2SE-compatible system on par with C++. PERC 4.2 showed significant improvements in string and array intensive benchmarks on the order of 50%. Improvements in class loading cut this time by 30%.
Pricing for the PERC 4.2 VM and an Eclipse-based development environment starts at $2995. PERC runs atop a range of real-time operating systems, such as QNX, VxWorks, LynxOS, QNX, and OSE.
LynuxWorks and Apogee also announced their RTSJ-compliant Java runtime environments, which are based on IBM's Java developments. Aphelion is Apogee's Eclipse-based Java development environment and J2ME-compatible Java runtime environment (JRE). These environments run on LynuxWorks' LynxOS and Blue Cat Linux.
Prism Technologies and Objective Interface are two other players in the real-time Java market. Prism Technologies released its OpenFusion RT for Java, an Object Management Group (OMG) CORBA Object Request Broker (ORB) Objective Interface released for the ORBexpress RT. CORBA middleware's charge is to create high-performance, high-reliability, distributed software components.
ORBexpress RT handles hard real-time requirements, including predictable time behavior, support for different levels of quality of service, and plug-in custom transports. It builds on the Real-Time CORBA 1.0 Support, making it compatible with other CORBA-based solutions. This means other CORBA components can be written in any programming language and run on any platform.
It looks like real-time Java has arrived.
|NEED MORE INFORMATION?|