Excelsior JET 5.0 Beta 2 delivers a major performance increase over previous versions thanks to the enhancements in Excelsior JET Optimizer and Runtime:
- new loop optimizations
- faster floating-point operations
- faster memory allocation
- more effective implementation of other runtime routines
OUR RESULTS
To estimate the effect of these optimizations, look at the performance comparison of Excelsior JET 5.0 Beta 2 against previous versions made with two standard benchmark suites:
| Benchmark |
Speed-up |
Compared to |
| SciMark2 composite score |
1.76x |
Excelsior JET 4.x |
| SPEC JVM98 composite score |
1.73x |
Excelsior JET 4.0-4.5* |
| (*) Excelsior JET 4.8 showed some performance improvements as measured with SPEC JVM98. Compared to it, the speed-up factor is 1.61x. |
TRY IT NOW
To evaluate these improvements on your Java applications, download and install Excelsior JET 5.0 Evaluation Package.
Excelsior JET 5.0 will introduce Java Runtime Slim-Down, a new deployment technology that reduces the download size of Java SE applications. This Beta 2 release enables you to test drive Java Runtime Slim-Down with your Java apps.
OUR RESULTS
Here are the download size figures we obtained for sample installation packages powered by Excelsior Installer:
| Application |
GUI Toolkit |
Download size |
| SWTDemo |
SWT |
4.8 MB |
| JaLingo 0.6.0 |
Swing |
8.5 MB |
| jEdit 4.2 |
Swing |
8.7 MB |
| RSSOwl 2.0 |
SWT+AWT/Java2D |
8.6 MB |
Note that the Java applications:
- do not need the JRE installed on enduser systems
- use Java SE 5.0 not JDK 1.1.x
HOW IT WORKS
Using Java Runtime Slim-Down, you can select the components of Java SE API which are not used by your application and remove them from the installation package. Note that this deployment model does not compromise Java compatibility. For more details, see this blog post
TRY IT NOW
To try Java Runtime Slim-Down, do the following:
-
Download and install Excelsior JET 5.0 Evaluation Package.
-
Make sure that the Global Optimizer is enabled on the page Classpath of the JET Control Panel and rebuild your project.
-
On the page Runtime of JetPackII, click Configure in the Detached Components pane and select the Java SE components which you want to exclude from the installation package.
Definition (Murphy). A working program is one that has only unobserved bugs.
From time to time, our customers send us defect reports like this
My app works fine under Sun JVM and does not work after compilation with Excelsior JET. Please fix the bug.
Does it mean that the bug lurks in Excelsior JET? The answer is ?maybe?. Of course, there are bugs escaped our QA and any submission of your defect reports is always welcome. However, sometimes, such problems appear because some code was not properly written in the application or in third-party components it uses.
We decided to publish examples of such support cases and hope that it will help you write correct code and reduce the workload on our Support (a bit).
And so we begin…
Story 1. White List
One day a user submitted the bug report:
I have written a program which just uses XStream (xstream-1.1.3.jar) to create the XML tag for a final class variable in my program. I am able to execute directly using the JVM on my system.
Then i tried to create an EXE using JET 4.8 and got the following Error:
Exception in thread “main”
com.thoughtworks.xstream.converters.reflection.
ObjectAccessException: Invalid final field
We inspected the code in the XStream library that provoked throwing the exception and, to our big surprise, found the following:
private boolean canUseSun14ReflectionProvider(){
return
(isSun() || isApple() || isHPUX() ||
isIBM() || isBlackdown()) &&
is14() &&
loadClass("sun.misc.Unsafe") != null;
}
Well, it proved that we are not on the “white list”.
Fortunately, the next version of XStream did not have such a “face control” checking code. We recommended the user to switch to it and the problem has gone.
The only thing that reassured us is that some of other Java SE Licensees were not listed too.
***
Other Support’s Fairy Tales will be published in this blog as well as in Excelsior JET forum. Stay tuned!
The flagship product of our long-term customer Senomix Software Inc. has appeared today in the Excelsior JET Gallery. According to them, “Senomix Timesheets is a simple project management tool which allows your office to track employee effort, estimates, billing and project progress through an easily installed set of networked applications.”
If you want your application to appear in the Gallery too, or if you know of a popular free Java application that might benefit from optimization, please let us know.