A HotSpot egy Java virtuális gép desktopokra és szerverekre, melyet az Oracle Corporation terjeszt és tart karban. Ebbe olyan technikák vannak beépítve, mint pl. a futásidejű fordítás vagy az alkalmazkodó optimalizáció, amelyet a teljesítmény javítására terveztek.

HotSpot
FejlesztőOracle Corporation (korábban Sun Microsystems)
Első kiadás1999. április 27.
Legfrissebb stabil kiadás23.25-b01
(2016. január 1.)
Programozási nyelvC++, Assembly
Operációs rendszerPlatformfüggetlen
KategóriaJava virtuális gép
LicencGNU General Public License
A HotSpot weboldala

Története szerkesztés

A HotSpotot először 1999. április 27-én adták ki. Eredetileg a Longview Technologies LLC fejlesztették ki, amely Animorphic néven működött, kis induló cégként, amelyet 1994-be alakítottak. Az Animorphic virtuális gép technológiáját korábban sikeresen használták egy Sun kutatási projektben, a Self programozási nyelvben. 1997-ben a Longview Technologies LLC-t (DBA Animorphic-t) megvette a Sun Microsystems.[1] Eredetileg beépülő modulként volt elérhető a Java 1.2-höz, de a Java 1.3-ban vált a HotSpot alapértelmezett Sun JVM-mé. [2]

A neve abból származik, hogy Java bájtkódot futtat, és folyamatosan analizálja a program teljesítményét a forró pontokért (angolul hot spotok), amelyek gyakran vagy ismétlődve hajtódnak végre. Ezek az optimalizációt célozzák meg és nagy teljesítményű végrehajtáshoz vezetnek, minimális többlet költséggel a kevésbé teljesítmény kritikus kód esetében. Néhány esetben lehetséges a JVM alkalmazkodó optimalizációja, hogy akár meg is haladja a kézzel kódolt C++ vagy C kód teljesítményét.[3]

Tulajdonságai szerkesztés

A Sun ill. most már az Oracle JRE két virtuális gépet nyújt, az egyiket Client-tnek a másikat Server-nek hívják. A kliens verzió gyors betöltésre van hangolva. Ez a java értelmezőt használja. A szerver verzió sokkal lassabban töltődik be, mivel több erőfeszítésbe kerül hogy előállítson magas szinten optimalizált JIT fordításokat, a magasabb teljesítmény érdekében. Mindkét VM csak a gyakran futó metódusokat fordítja le konfigurálható hívás-számláló-küszöbszámok használatával meghatározva az éppen lefordítandó metódust.

A HotSpot Java virtuális gépet C++-ban írták. Ahogy ezt HotSpot web oldalán állítják, a forráskód körülbelül 250 000 sorból áll.[4] A Hotspot a következőket nyújtja:

A HotSpot Microsoft Windows verziója futtat egy jucheck.exe nevű háttér processzt, amely folyamatosan vizsgálja, hogy elérhető-e frissítés az Oracle-től.[5]

JVM kapcsolók szerkesztés

A HotSpot számos parancssori argumentumot támogat a virtuális gép végrehajtási opcióihoz. Néhány ezek közül sztenderd és meg kell található legyen bármely Java virtuális gép konform implementációban, mások HotSpot specifikusak és nem találhatók meg más JVM-ekben (azok az opciók, amelyek -X vagy -XX-el kezdődnek nem sztenderdek).[6][7][8][9]

Licenc szerkesztés

2006. november 13-án, a Sun JVM és JDK licenceltté vált[10] GPL 2-es verzió alatt (lásd Sun OpenJDK Hotspot oldalán). Ez az a kód, ami részévé vált a Java 7-nek (kódneve Dolphin[11]).

Támogatott platformok szerkesztés

Oracle által karbantartott szerkesztés

Ahogy az egész JDK-t, a HotSpot-ot is támogatja az Oracle Corporation a következő platformokra: Microsoft Windows, Linux, és Solaris. Támogatja az ISA-t a következő architektúrákra: IA-32, x86-64 és SPARC (kizárólag Solarisra).[12]

Harmadik fél általi portolások szerkesztés

Portolások szintén elérhetők a harmadik fél által Mac OS X-re és számos más Unix operációs rendszerre. Számos különböző hardver architektúra támogatott, beleértve az x86-t, PowerPC-t, és SPARC-t (csak Solaris).

A HotSpot portolása meglehetősen nehéz, mivel a kód – bár elsődlegesen C++-ban írták –, rengeteg assembly nyelvű részt tartalmaz.[13] Ezt orvosolandó, az IcedTea(wd) projekt kifejlesztett egy általános HotSpot értelmező portolást, amit zero-assembler Hotspot-nak hívnak (vagy zero-nak), amely csaknem teljesen assembly kód nélküli. Ezt a portolást a HotSpot értelmező komponensének könnyű adaptációjára tervezték, bármelyik Linux processzor architektúrára. A zero-assembler Hotspot kódját használják a HotSpot összes nem x86 portolásához többek közt a (PPC, IA64, S390 és ARM) architektúrákra az Java 1.6-os verziója óta.[14][15][16]

Gary Benson – aki egy IcedTea fejlesztő –, kifejlesztett egy platformfüggetlen Shark for HotSpot nevű futásidejű fordítót, ami egy alacsony szintű virtuális gép és teljesíti a zero feltételeket.[17][18]

Jegyzetek szerkesztés

  1. Sun's Gosling Previews Hotspot Java Virtual Machine. ComputerGram, 1998. február 13. (Hozzáférés: 2008. április 20.)
  2. Sun Microsystems releases fastest client-side Java platform to date. Sun Microsystems, 2000. május 8. [2007. augusztus 17-i dátummal az eredetiből archiválva]. (Hozzáférés: 2007. október 3.)
  3. Lewis, J.P.: Performance of Java versus C++, 2004. (Hozzáférés: 2007. október 3.)
  4. The HotSpot Group. Sun Microsystems, 2007. január 1. (Hozzáférés: 2007. október 3.) „There are nearly 1500 C/C++ header and source files, comprising almost 250,000 lines of code
  5. What is jucheck.exe?. Java.com. (Hozzáférés: 2011. augusztus 17.)
  6. Java HotSpot VM Options. Sun Microsystems. (Hozzáférés: 2009. február 8.)
  7. Mocker, Joseph D.: A Collection of JVM Options, 2007. augusztus 28. [2011. április 30-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. február 8.)
  8. Maximovich, Dmitri: The most complete list of -XX options for Java 6 JVM. [2010. január 30-i dátummal az eredetiből archiválva]. (Hozzáférés: 2009. február 8.)
  9. Nutter, Charles: My Favorite Hotspot JVM Flags, 2009. január 29. (Hozzáférés: 2009. február 8.)
  10. Sun Opens Java. Sun Microsystems, 2006. november 13. (Hozzáférés: 2007. október 3.)
  11. JDK7 Archiválva 2016. december 15-i dátummal a Wayback Machine-ben, Sun.
  12. Supported System Configurations. Sun Microsystems. (Hozzáférés: 2008. január 26.)
  13. Gary, Benson: Gary's guide to porting IcedTea, 2007. november 6. [2012. május 3-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. január 26.)
  14. Gary, Benson: 1st February 2008, 2008. február 1. [2012. május 3-i dátummal az eredetiből archiválva]. (Hozzáférés: 2008. február 3.)
  15. Andrew, Haley: Making zero-assembler the default on ppc, 2008. január 31. (Hozzáférés: 2008. február 3.)
  16. Lilian, Angel: IcedTea 1.6 Released with Zero-assembler and JNLP support!. Red hat, 2008. február 13. (Hozzáférés: 2008. február 13.)
  17. Gary, Benson: 31 March 2008. Red hat, 2008. március 31. (Hozzáférés: 2008. május 30.)
  18. Gary, Benson: 28 May 2008. Red hat, 2008. május 28. (Hozzáférés: 2008. május 30.) „Shark is a platform-independent JIT for HotSpot, to complement the zero-assembler interpreter we’ve been using

További információk szerkesztés

Kapcsolódó szócikkek szerkesztés

Fordítás szerkesztés

Ez a szócikk részben vagy egészben a HotSpot című angol Wikipédia-szócikk ezen változatának fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.