Katana VentraIP

HotSpot (virtual machine)

HotSpot, released as Java HotSpot Performance Engine,[1] is a Java virtual machine for desktop and server computers, developed by Sun Microsystems and now maintained and distributed by Oracle Corporation. Its features improved performance via methods such as just-in-time compilation and adaptive optimization. It is the de facto Java Virtual Machine, serving as the reference implementation of the Java programming language.

This article is about Oracle's Java virtual machine. For other uses, see Hotspot.

History[edit]

The Java HotSpot Performance Engine was released on April 27, 1999,[1] built on technologies from an implementation of the programming language Smalltalk named Strongtalk, originally developed by Longview Technologies, which traded as Animorphic. The Longview virtual machine was based on the Self virtual machine, with an interpreter replacing the fast-and-dumb first compiler. When Sun cancelled the Self project, two key people, Urs Hölzle and Lars Bak left Sun to start Longview. In 1997, Sun Microsystems purchased Animorphic.[2]


Shortly after acquiring Animorphic, Sun decided to write a new stronger just-in-time (JIT) compiler for the Java virtual machine,[3] named HotSpot server compiler (internal name C2), which was initially developed by Clifford Click[4] and was an extension of his PhD thesis on optimizing compilers.[5] The compiler name HotSpot is derived from the software's behavior: as it runs Java bytecode, as with the Self VM, HotSpot continually analyzes the program's performance for hot spots which are executed often or repeatedly. These are then targeted for optimizing, leading to high-performance execution with a minimum of overhead for less performance-critical code. In one report, the JVM beat some C++ or C code in some benchmarks.[6]


Initially available as an add-on for Java 1.2,[7] HotSpot became the default Sun JVM in Java 1.3.[8]

A

Java Classloader

A templating interpreter

Java bytecode

Client (C1) and Server (C2) Just-in Time Compilers, optimized for their respective uses

Several (including the very-low-pause-time ZGC and pauseless Shenandoah)[12][13]

garbage collectors

A set of supporting runtime libraries

License[edit]

On 13 November 2006, the HotSpot JVM and the Java Development Kit (JDK) were licensed under the GNU General Public License (GPL) version 2.[18] This is the code that became part of Java 7.[19]

Supported platforms[edit]

Maintained by Oracle[edit]

As with the entire Java Development Kit (JDK), HotSpot is supported by Oracle Corporation on Windows, Linux, and macOS. Supported instruction set architectures (ISAs) are x86-64 and AArch64.[20] Since JDK 15, Solaris and SPARC are no longer supported.[21]

Ports by third parties[edit]

Ports are also available by third parties for various other Unix operating systems. Several different hardware architectures are supported, including x86, PowerPC, and SPARC (Solaris only).


Porting HotSpot is difficult, as much of it is almost extensively written in assembly language,[22] though several sections of it are also written in purely standards conformant ISO C++. To remedy this, the IcedTea project has developed a generic port of the HotSpot interpreter called zero-assembler Hotspot (or zero), with almost no assembly code. This port is intended for easy adaptation of the interpreter component of HotSpot to any Linux processor architecture. The code of zero-assembler Hotspot is used for all the non-x86 architecture ports of HotSpot (PowerPC, Itanium (IA-64), S390 and ARM) since version 1.6.[23][24][25]

List of Java virtual machines

Comparison of Java virtual machines

Java performance

OpenJDK

a project to prototype the extension of the JVM to add support for dynamic programming languages

Da Vinci Machine

Official website

A list of HotSpot VMOptions

The Java Virtual Machine Specification

History of the original Strongtalk-HotSpot team

. Archived from the original on December 18, 2006. Retrieved March 27, 2014.{{cite web}}: CS1 maint: bot: original URL status unknown (link)

"Sun announces availability of the Java Hotspot Performance Engine"

HotSpot Mercurial source code development repository (version control system) for JDK8