The Fastest JVM on Greenland
Lagoni Engineering uses Excelsior JET Embedded to optimize its smart energy solution, deployed to a test site in Greenland.
What Is It?
Excelsior JET Embedded is a properly licensed, compliant Java SE for Embedded technology implementation enhanced with an Ahead-Of-Time compiler.
How It Works?
The AOT compiler takes your jar and class files as input and produces a conventional binary executable. The runtime also includes a JIT compiler to handle any classes that were not precompiled.
What Does “Java Compatible” Mean, Exactly?
You may be wondering what it takes to get this little Java Compatible logo and, more importantly, what benefits it delivers to you as a user of our product. These are the key points:
The use of Excelsior JET is safer from a legal standpoint compared to non-compliant commercial embedded Java offerings.
Vendors of unlicensed commercial solutions effectively abuse the Java trademark and risk being pushed out of business or forced to bring their offering in compliance with the commercial Java technology license.
Notice The JCK is not a stress test. It does not benchmark the implementation's performance or throughput.
Benefits Why Use It?
Faster Startup, Better Performance
Natively precompiled Java code runs directly on hardware right from the start. The absence of the warm-up cycle and JIT compilation overhead results in faster application startup and optimal code performance.
All charts on this page are taken from an actual customer case study. The results for your application will vary.
Excelsior JET keeps the size of the Java SE runtime as small as possible. This reduces the ROM (flash memory) and RAM footprint of embedded Java applications, which is important for space-constrained environments.
The run time memory footprint is smaller because the Excelsior JET JVM is leaner compared to traditional implementations.
As for disk space usage, the unique Java Runtime Slim-Down feature enables you to selectively omit parts of the Java SE standard library that are not used by your application.
Robustness and Predictability Code tested === Code deployed
The Excelsior JET compilers, both AOT and JIT, make no optimistic assumptions. The code they yield may be less optimal in particular scenarios, but never needs to be changed at application run time. You can be sure that the code executing on the device is the code that has passed the test load in your lab.
A typical JVM loads classes one-by-one, initially interpreting and profiling all methods. As the JVM detects frequently called methods and loops with a large number of iterations, it begins dynamically compiling such methods and fragments into native code.
An advanced JIT compiler also makes certain assumptions based on the set of classes loaded so far. If such an assumption is later broken, the respective methods have to be deoptimized and possibly recompiled.
All this machinery can become very sophisticated. As a result, it becomes very difficult to test all possible variants and combinations of the dynamically generated pieces of code.
Protection Against Java Decompilers Peace of mind
Java class files are easy to reverse-engineer. The very properties that enable Java applications to run anywhere make reverse translation straightforward. There are a number of Java decompilers on the market that produce amazingly readable source code. In contrast, reverse translation of optimized native code is a hard engineering task, which cannot be automated like Java bytecode decompilation.
can make the decompiled code less comprehensible.
However, name obfuscation may cause reflection and JNI failures,
whereas extensive control flow obfuscation negatively impacts performance
and may provoke a
VerifyError. To make things worse,
these problems only manifest themselves when the respective
class is actually loaded at application run time, and thus may slip through
the QA process.
And reverse engineering of an equivalent C++ program passed through an
optimizing compiler would still be more difficult.
Excelsior JET Embedded gives you the best of both worlds. With it, you flash solid binary executables into your devices, while avoiding the obfuscation trade-offs — reduced performance and an increased risk of run-time errors. And you may still pass classes not accessed via JNI or reflection through a name obfuscator if you know what you are doing.
|CPU:||Intel Pentium II or compatible at 200 MHz or higher|
|RAM:||5MB minimum, 16+MB recommended|
Linux: kernel 2.6.x, glibc 2.3+, NPTL 2.3+
|CPU:||Intel Pentium III or compatible at 800 MHz or higher|
|RAM:||1.5 GB minimum, 2 GB or more recommended|
|Disk Space:||650 MB minimum, up to 750MB extra for temporary use|
Windows: Windows 7, Vista, or XP
Linux: kernel 2.6.x, glibc 2.3+, NPTL 2.3+.
GUI tools also need X11 and xterm.
The Java SE technology is free for use on general purpose desktop and server computers, but not in embedded systems. Therefore the licensing scheme and cost structure for Excelsior JET Embedded are different from its desktop/server sibling.
In short, you have to pay royalties to Oracle for the embedded use of Java SE, and pay support fees to Excelsior. The fees depend on the field of use, the market value (e.g. retail price) of your devices, and the number of units you ship each quarter.
Notice The Java SE Embedded technology license currently prohibits the use of Java SE in cell phones.
Excelsior JET Embedded Evaluation Request
Any technical questions or issues
Pricing, licensing, support renewals, etc.
All other issues.
+7 (383) 330 55 08
We are in GMT+7 - mind the time difference
+7 (383) 330 55 09 (domestic)
+1 (509) 271 52 05 (intl e-fax)
By MailP.O.Box 100
Novosibirsk 630090 Russia
Or Come Over For a Visit6 Lavrenteva Ave.
Novosibirsk 630090 Russia
Director of Marketing
+1 (408) 786 5641 skypein