InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

Excelsior JET 6.4: Smaller, Faster, More Secure Java

Posted by Craig Wickesser on Jun 24, 2008

Sections
Development,
Architecture & Design
Topics
Java ,
Performance & Scalability ,
Compilers ,
Security
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
  1. Back to top

    Updated Performance Results

    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

10 tips on how to prevent business value risk

One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.

Beauty Is in the Eye of the Beholder

Alex Papadimoulis discusses ugly code, where it comes from, how to avoid it, and how to get rid of it.

Architecting Visa for Massive Scale and Continuous Innovation

John Davies examines Visa’s architecture and shows how enterprises have architected complex integrations incorporating Hadoop, memcached, Ruby on Rails, and others to deliver innovative solutions.

Max Protect: Scalability and Caching at ESPN.com

Sean Comerford unveils ESPN.com’s architecture, what components are used and why, and the current changes the website goes through.

The Seven Deadly Sins of Enterprise Agile Adoption

Are there repeated patterns of failure on Enterprise Agile Enablement efforts? Sanjiv and Arlen discuss Seven Deadly Sins to avoid when adopting Agile in an enterprise.

Questions for an Enterprise Architect

Erik Dörnenburg answers: What is Enterprise and Evolutionary Architecture?, discussing 4 issues: Turning strategy into execution, Ensuring conformance, Where do the architects sit? Buying or building?

Wrap Your SQL Head Around Riak MapReduce

Sean Cribbs explains what Map-Reduce and Riak are, why and how to use Map-Reduce with Riak, and how to convert SQL queries into their Map-Reduce equivalents.