HotSpot
From Wikipedia, the free encyclopedia
HotSpot | |
---|---|
Latest release | 1.6 |
OS | Cross-platform |
Genre | Java Virtual Machine |
License | GNU General Public License |
Website | Sun's OpenJDK Hotspot page |
HotSpot is the primary Java Virtual Machine for desktops and servers produced by Sun Microsystems. It features techniques such as just-in-time compilation and adaptive optimization designed to improve performance.
Contents |
[edit] History
HotSpot, first released April 27, 1999, was originally developed by Longview Technologies, LLC which was doing business as Animorphic, a small startup company formed in 1994. In 1997, Longview Technologies, LLC (DBA Animorphic) was purchased by Sun Microsystems[1]. Initially available as an add-on for Java 1.2, HotSpot became the default Sun JVM in Java 1.3[2].
Its name derives from the fact that as it runs Java byte-code, it continually analyzes the program's performance for "hot spots" which are frequently or repeatedly executed. These are then targeted for optimization, leading to high performance execution with a minimum of overhead for less performance-critical code. HotSpot is widely acclaimed as providing the best performance in its class of JVM.[citation needed] In theory, though rarely in practice, it is possible for adaptive optimization of a JVM to exceed the performance of hand-coded C++ or assembly language code[3].
[edit] Features
In Sun's JRE, it consists of two interchangeable versions, one called Client and the other Server. The Client version is tuned for quick loading and compilation of essential classes and methods only. The Server version loads more slowly but puts more effort into producing highly optimized JIT compilations that yield higher performance.
The HotSpot Java Virtual Machine is written in C++. As stated in HotSpot web page, the code contains approximately 250,000 lines of code[4]. Hotspot provides:
- A class loader,
- A bytecode interpreter,
- A Client and a Server JIT compiler from bytecode to native instructions,
- Several garbage collectors,
- A set of supporting runtime libraries.
[edit] License
On 13 November 2006, the Sun JVM and JDK were made available[5] under the GPL license (see Sun's OpenJDK Hotspot page).
[edit] Supported platforms
As for the whole JDK, HotSpot is currently supported by Sun on Microsoft Windows, Linux, and Solaris[6]. Ports are also available by third parties for Mac OS X and various other Unix Operating systems.
Ports of HotSpot are difficult because the code, while primarily written in C++, contain a lot of assembly[7]. 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 to allow the interpreter part of HotSpot to be very easily adapted to any Linux processor architecture, potentially making it infinitely portable. The code of zero-assembler Hotspot is used for all the non-x86 ports of HotSpot (PPC, IA64, S390 and ARM) since version 1.6[8][9][10].
Gary Benson, an IcedTea developer, is now developing a platform-independent Just-in-time compiler called Shark for HotSpot, to complement zero[11][12]. Achievement of this work would made the Java Virtual Machine independent of the CPU architecture.
[edit] See also
- List of Java virtual machines
- Java performance
- OpenJDK
- Da Vinci Machine, a starting Sun project aiming to prototype the extension of the JVM to add support for dynamic languages.
[edit] References
- ^ Sun's Gosling Previews Hotspot Java Virtual Machine. ComputerGram (1998-02-13). Retrieved on 2008-04-20.
- ^ Sun Microsystems releases fastest client-side Java platform to date. Sun Microsystems (2000-05-08). Retrieved on 2007-10-03.
- ^ Lewis, J.P. (2004). Performance of Java versus C++. Retrieved on 2007-10-03.
- ^ The HotSpot Group. Sun Microsystems (2007). Retrieved on 2007-10-03. “There are nearly 1500 C/C++ header and source files, comprising almost 250,000 lines of code”
- ^ Sun Opens Java. Sun Microsystems (2006-11-13). Retrieved on 2007-10-03.
- ^ Supported System Configurations. Retrieved on 2008-01-26.
- ^ Gary, Benson (2007-11-06). Gary's guide to porting IcedTea. Retrieved on 2008-01-26.
- ^ Gary, Benson (2008-02-01). 1st February 2008. Retrieved on 2008-02-03.
- ^ Andrew, Haley (2008-01-31). Making zero-assembler the default on ppc. Retrieved on 2008-02-03.
- ^ Lilian, Angel (2008-02-13). IcedTea 1.6 Released with Zero-assembler and JNLP support!. Red hat. Retrieved on 2008-02-13.
- ^ Gary, Benson (2008-03-31). 31 March 2008. Red hat. Retrieved on 2008-05-30.
- ^ Gary, Benson (2008-05-28). 28 May 2008. Red hat. Retrieved on 2008-05-30. “Shark is a platform-independent JIT for HotSpot, to complement the zero-assembler interpreter we’ve been using”
[edit] External links
- Sun's OpenJDK Hotspot page
- Sun's HotSpot information page
- HotSpot performance whitepaper
- A list of HotSpot VMOptions
- The Java Virtual Machine Specification
- The history of the original Strongtalk/HotSpot team
- Sun announces availability of the Java Hotspot Performance Engine
|