InfoQ

News

Excelsior JET 6.4: Smaller, Faster, More Secure Java

Posted by Craig Wickesser on Jun 24, 2008

Community
Java
Topics
Compilers ,
Security ,
Performance & Scalability
Tags
JVM ,
Excelsior Jet
Excelsior was founded in 1999 and has recently released version 6.4 of Excelsior JET. This latest version includes several worthwhile features such as Encryption of Data and Resources, Startup Optimizer and Smart Compilation.

Encryption of Data and Resources
In previous versions the code was made "secure" as a side effect of the way compiled Java classes were optimized, but this did not protect string literals, reflection information, media files or properties files. In the lastest release all of those things can be encrypted by simple selection an option in the "JET Control Panel". Unlike name obfuscation which can sometimes cause code to become non-functional, Dmitry Leskov, Excelsior Marketing Director, mentions that,
On-demand decryption ensures that reflection and JNI remain fully functional, as opposed to name obfuscation, commonly used for protection of Java applications.
With regards to performance loss due to the on-demand decryption, Dmitry stated,
In our measurements, the loss was negligible. But this may change with more sophisticated encryption schemes that we may add in future versions if there will be customer demand.
Startup Optimizer
The standard Sun JVM optimizes Java code during run time to increase performance slightly, however, included in Excelsior JET 6.4 is the new Startup Optimizer which can reduce the start up time of an application by a factor of two. Additional information about this functionality can be found in the "Startup Time Optimization" chapter of the Excelsior JET User's Guide.

Smart Compilation
One of the other notable changes made was level 0 "Smart" compilation. To quote the Excelsior website,
The JET Optimizer now tracks changes in the project to avoid recompilation of the entire application if only auxiliary application files and/or project settings were modified. It dramatically reduces compilation time if, for example, you modify version info, runtime settings, resource files, icon/splash screen, etc.
InfoQ also asked Dmitry about benchmark results to support their claims, as well as, comparing Excelsior JET to other VM's available such as GCJ and Apache Harmony.
We run a number of benchmarks internally, so yes, there are some benchmark results for 6.4, but we have had no time to publish them yet. We'll likely publish SPECjvm2008 results soon. The most recent third-party results that I am aware of are available at http://www.stefankrause.net/wp/?p=6 and include Sun JDK, IBM JDK, BEA JRockit, GCJ, Apache Harmony, and Excelsior JET, run against GCC and Intel C++.
Applications written in Java 5 and 6 are supported by Excelsior JET 6.4, while Java 1.4.2 applications can still use Excelsior JET 4.8. As for the future of Excelsior JET, Dmitry has this to say,
We have been working on a major feature that we hope will enable our product to enter a new market segment. We have not had enough time to finish it before this release, hence the version number (6.4 instead of 6.5). We plan to announce that feature and make a beta version available in mid to late July, so stay tuned. :)
It's also worth mentioning that Excelsior provides their JET product for embedded applications.
Updated Performance Results by craig w Posted Jul 6, 2008 7:06 PM
  1. Back to top

    Updated Performance Results

    Jul 6, 2008 7:06 PM by craig w

    I just got word from Dmitry that he has updated information regarding Excelsior JET compared to other VM's:

    www.stefankrause.net/wp/?p=9

Educational Content

Brian Marick on 4 Challenges and 5 Guiding Values of Agile Software Development

Brian Marick takes us through a quick tour of the most important values and challenges to adopting Agile successfully (they aren't the typical challenges and values we hear in the community).

Are You a Software Architect?

The line between development and architecture is tricky. Does it exist at all? Is an ivory tower actually needed? There's a balance in the middle, but how do you move from developer to architect?

Agile – A Way of Life and Pragmatic Use of Authority

The word 'authority' sometimes produces an allergic response in hard-line agilists. Freedom and authority – both are bad if misused and both are good if used in right spirit for a noble cause.

Getting Started with Grails, Second Edition

"Getting Started with Grails" brings you up to speed on this modern web framework. Companies as varied as LinkedIn, Wired, and Taco Bell are all using Grails. Are you ready to get started as well?

Using ITIL V3 as a Foundation for SOA Governance

Those familiar with only ITIL V2 often scoff at the thought that ITIL could serve as a governance framework for SOA. With ITIL V3, the focus of the framework shifted towards service-orientation.

Adrian Colyer on AspectJ, tc Server and dm Server

SpringSource CTO Adrian Colyer discusses AspectJ, SpringSource's dm Server and tc Server products, OSGi and Scrum.

Adam Wiggins on Heroku

Heroku's Adam Wiggins talks about Rails, Background Jobs, Add-Ons, Ruby, and how Heroku manages to work around Ruby's inefficiencies using Erlang and other languages.

SOA as an Architectural Pattern: Best Practices in Software Architecture

For Grady Booch the foundation of a good architecture is patterns, SOA being just one of many patterns. In this Second Life presentation, Booch attempts to bring more clarity on what architecture is.