Java SE Embedded Refreshed

As embedded processor designs continue their inexorable drive towards ever increasing capability, the natural desire to utilize more robust software platforms, previously reserved for powerful desktop computers and servers, follows suit.  Recognizing this trend, a version of the Java Standard Edition platform, called Java SE Embedded, has been developed to address this growing market.  In addition to bringing all of the benefits of the ubiquitous Java Standard Edition to the most popular embedded processors, static footprint and memory optimizations have been realized.  To get a feel for some of the space savings, check out this article.

Partly due to the turmoil surrounding the Oracle acquisition of Sun, a refresh of the Java SE Embedded binaries took longer than anticipated.  The new versions are now available for download with these supported configurations.  During that time frame, Java SE-E engineers were able take care of some internal housekeeping which should help for better synchronization of future releases of Java SE with Java SE-E.  In the past, Java SE-E engineers would take a snapshot of the Java Standard Edition code and incorporate their modifications to create a new release, forking from the standard edition source,.  Now, the Java SE-E code is part of the overall Java SE project, such that future Java SE enhancements and bug fixes should now be automatically incorporated into the Java SE-E code base.

The refreshed Java SE-E binaries are based on the Java SE 6 Update 21, and represent substantial security, performance and quality enhancements.  Benchmark tests show that, for example, simply replacing the previous versions of the Java SE-E virtual machines with the latest binaries produces on average about 20% performance gain for the same hardware/OS combination.  Having recently introduced a Just-In-Time (or JIT) compiler to the Android Dalvik Virtual Machine, we thought it would be an interesting exercise to compare performance of Java SE-E to Android on identical hardware.  For a full explanation of the results and methodology, check out Bob Vandette's blog on this topic.  To cut to the chase, for the selected benchmarks, Java SE-E outperforms Android by a factor of two. 

Improving virtual machine performance is a tedious process that takes time.  The bottom line is this:  Java SE Virtual Machine engineers have been at this for a very long time, and have had the benefit of fifteen years of scrutiny from the computer science community.  It will take considerable time and effort for Android to come close to this capability.  In the interim, the Java Virtual Machine performance and quality improvement marches on.

   Next up: Take a look at these pictures.  Based upon Marvell's Plug Computer design, these amazing devices pack a 1+GHz Arm processor with 512MB RAM and consume a minuscule 5 watts of power. They run Java SE-E beautifully.  Combined with an IDE like NetBeans, this makes for an ideal, although unofficial, Java SE Embedded Development Kit.


While the performance difference it interesting it does not give a good comparison for real life usage where many applications run at the same time concurrently and do all sorts of tasks. Show me a JavaSE powered phone with a lot of apps and a decent user interface, developer community and lots of different modern devices you can actually get your hands on and I will take a look. Until then I choose Android.

Posted by Manfred Moser on December 17, 2010 at 07:06 AM EST #

This version of JavaSE is not intended for phones. In fact, many of the Java SE Embedded binaries are for headless devices. We compare against Android because they have their sight set on this market.

As far as phones go, all the attention these days surrounds smart phone platforms like the ones from Apple, RIM, Android and Nokia. That's fine, but realize that smart phone still makes up a very small percentage of the phones sold worldwide. This is where JavaME (not SE) comes into play. In fact over 3 billion phones have shipped with JavaME to date.

Posted by James Connors on December 17, 2010 at 08:36 AM EST #

Even for embedded, headless devices raw performance of one app is not necessarily showing the real performance of an actual device.

And in terms of smartphones I am aware of the huge number of phones that shipped with JavaME. However at this stage it looks very much like JavaME powered phones are on the decline and Android and other smartphone are on the rise. The market is shifting a lot and at this stage it looks like JavaME is missing the train.

Also the developer experience for JavaME is a lot worse than it is for Android.

Posted by Manfred Moser on December 17, 2010 at 08:55 AM EST #


Posted by kevin on January 16, 2011 at 10:23 AM EST #

We'll I think we've seen this sort of paralysis many a time, too afraid to change for loss of revenue, reminds me of the Unix Workstation. Java phone dev's want Java 5 language features, Google gives it to them, it's not as good as the real thing, but it'll do. Now it has market share and developer mindshare.

Stop stuffing around and release Java SE Embedded with LWUIT, on top of the Linux (or Solaris) kernel. SavaJE ring a bell?

Or don't change and let the robot's invade the java embedded market too. What next Google TV? Can poor old CDC compete?

Posted by Peter on January 19, 2011 at 06:00 PM EST #

Post a Comment:
  • HTML Syntax: NOT allowed

Jim Connors


« March 2015