XELK-AN-009: Comparing JVMs (Java Virtual Machines) on i.MX6 family processors

From DAVE Developer's Wiki
Revision as of 16:00, 18 November 2019 by U0007 (talk | contribs) (Created page with "{{InfoBoxTop}} {{AppliesToAxel}} {{AppliesToAxelEsatta}} {{AppliesToAxelLite}} {{InfoBoxBottom}} {{ImportantMessage|text=This application note has been validated using the ''...")

(diff) ← Older revision | Approved revision (diff) | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
Info Box
Axel-04.png Applies to Axel Ultra
Axel-02.png Applies to AXEL ESATTA
Axel-lite 02.png Applies to Axel Lite


200px-Emblem-important.svg.png

This application note has been validated using the kit version in the History table.

History[edit | edit source]

Processor Date Kit version Notes
i.MX6 Cortex-A9 Nov 2019 XELK 4.0.0 i.MX6 DualLite SOC version
i.MX6UL Cortex-A7 Nov 2019 XUELK 2.0.3 i.MX6 Ultra Lite SOC version

Introduction[edit | edit source]

Nowadays the Java programming language is more and more used for creating embedded application taking advantages from the popular and powerful programming language like Java.

As well known, from wikipedia description:

Java is a general-purpose programming language that is class-based, object-oriented, and designed to have as few implementation dependencies as possible. It is intended to let application developers write once, run anywhere: Java code can run on all platforms that support Java without the need for recompilation.
Java applications are typically compiled to bytecode that can run on any Java virtual machine (JVM) regardless of the underlying computer architecture.

Java Virtual Machine[edit | edit source]

There are many different JVM that can run on ARM platform - like - let you to run your Java application on DAVE's Embedded platforms.

In this Application Note, we would like to explore some of the most popular Java Virtual Machines and measure their performances on the embedded platform. The different JVMs performance results let the user to target which JVM can be used for running its Java code in the better way.

Benchmarks[edit | edit source]

Two standard Java code benchmark tools are used to compare the JVMs:

We have to comply to the proper license agreements in order to run the benchmarks:

  • SciMark: please read the credits page about National Institute of Standards and Technology (NIST) GPL license
  • CaffeineMark: please read carefully the license agreement for running the Pendragon Software's CaffeineMark ver. 3.0

JVMs[edit | edit source]

The following Java Virtual Machines have been selected for the main Java player in the market. Obviously the Oracle JDK is the reference one due to the

The Java license agreement should be accomplished in order to use and evaluate the Oracle