HomeDigital EditionSys-Con RadioSearch Java Cd
Advanced Java AWT Book Reviews/Excerpts Client Server Corba Editorials Embedded Java Enterprise Java IDE's Industry Watch Integration Interviews Java Applet Java & Databases Java & Web Services Java Fundamentals Java Native Interface Java Servlets Java Beans J2ME Libraries .NET Object Orientation Observations/IMHO Product Reviews Scalability & Performance Security Server Side Source Code Straight Talking Swing Threads Using Java with others Wireless XML

Founded in the U.K. in 1986, Insignia started out developing technology that enabled non-Intel computers to run DOS and Windows applications. Twelve years later, after a shift in focus, the first beta versions of the Jeode platform and Jeode Embedded Virtual Machine emerged. According to Insignia's statistics, more than 35 million runtime units of Jeode technology have been contracted by OEMs, OS, and middleware suppliers.

Jeode includes class libraries for either PersonalJava or EmbeddedJava (depending on which implementation the device manufacturer chooses), and a tool suite that includes a configurator, monitor, and deployment tools. Jeode is available on a variety of operating systems - Windows CE 2.12 and 3.0, Windows NT4, VxWorks, Linux, ITRON, Nucleus, BSDi UNIX, and pSOS - and also supports a number of microprocessors: ARM, MIPS, x86, Hitachi SuperH-3, Hitachi SuperH-4, and PowerPC. Putting the OS and microprocessor support together, you're likely to have a myriad array of devices to choose from.

If you're reading JDJ from back to front, or have flipped to this page in the bookstore (then stop loitering and buy it, this isn't a library, you know?), you should read the iPAQ review first. JDJ's review used Jeode as the virtual machine upon which to run test applications; so, to find out how Jeode performs on an actual device, look there first. However, in this review we look at Jeode running on a desktop Windows NT machine and compare its performance against a number of other VMs.

How Does It Work?
Jeode uses a tool called the JeodeConfigurator to configure the virtual machine before running an application. This is useful if you want to develop in the Windows NT environment (for example), but your application will be running on a more limited platform (such as WinCE). The Configurator allows you to tune properties such as memory size, maximum dynamic memory size, system memory, Java memory, and stack size. You can switch dynamic compilation on or off, set the space used for dynamic compiling, turn debugging on or off, and so on. If your target device has a minimum of 8MB of RAM available, you can quite easily set your memory size to 8MB and tweak other options accordingly.

The Tests
As with the iPAQ review there are three main tests I'll be running Jeode through to give a very basic idea of how it performs. Test 1 just displays some of the AWT components on the screen ensuring that the VM isn't doing anything odd. Test 2 draws four triangles using the drawLine() graphics method and gives the time taken for the draw. Test 3 turns a byte array of pixels into an image before drawing that image to the screen. In addition, I've also decided to run the Sequential Benchmarks from Java Grande (www.javagrande.org), which gives stats on base Java functionality (additions, divisions, array assignments, casts, etc.).

The five VMs I'll be comparing are Sun JDK 1.1.8, Sun JDK 1.3, Sun PersonalJava Emulation Environment, Insignia's Jeode 1.7 (of course), and Microsoft VM 5.00.2752. (Note: If you're looking for proper benchmarking software or benchmarks for various virtual machines, see References at the end of the review.)

Results of Test 1
The only perceivable difference between the virtual machines for test 1 is that the version of PersonalJava that I'm using (PJEE3.1) uses the truffle peer set, hence the components look different to standard AWT. Apart from that, each VM behaves the same as the others.

Results of Test 2
The results of this test, which was run in a 640x480 window, are shown in Table 1.

Table 1

Results OF Test 3
The results for this test, again run in a 640x480 window, are shown in Table 2.

Table 2

Table 3 shows the basic arithmetic operations provided in Section 1 of the Java Grande benchmark.

Table 3

On WinNT, Jeode appears to hold its own against the competition, pulling in better results than the PersonalJava Emulation Environment (which, in its defense, is not supposed to be a production VM), and fairly similar results to a 1.1 VM. Running on the iPAQ (see iPAQ review) Jeode manages to beat the Sun VM on the pixel blit test, but not on the drawLine creation of triangles. These are not comprehensive tests, of course, so I invite you to draw your own conclusions, depending upon the nature of the applications you're developing.

The ability to tweak your environment to mimic a device, before you even have the hardware, must count as a selling point. And with Compaq and Insignia releasing a $19.95 version of the software - at the very least, providing a link (see References) for customers interested in using your Java software is a no-brainer.


  1. The Compaq/Insignia Jeode deal: www.compaq.com/products/handhelds/java.html
  2. Java Grande: www.javagrande.org
  3. Java Performance Report: www.javalobby.org/fr/html/frm/javalobby/features/jpr/
  4. CaffeineMark: www.pendragon-software.com/pendragon/cm3/

Author Bio
"Insignia Solutions Inc.
41300 Christy St.
Fremont, California 94538
Web: www.insignia.com
Phone: 800 848 7677
E-Mail: [email protected]

Test Environment
P800 with Windows NT 4.0 SP4" [email protected]

All Rights Reserved
Copyright ©  2004 SYS-CON Media, Inc.
  E-mail: [email protected]

Java and Java-based marks are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. SYS-CON Publications, Inc. is independent of Sun Microsystems, Inc.