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.
Története 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. 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é.
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.
Tulajdonságai 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. A Hotspot a következőket nyújtja: a java osztály betöltő, a java bájtkód értelmező, kliens és szerver virtuális gép, optimalizálva a megfelelő használatra, számos szemétgyűjtő algoritmus, futtatókörnyezetet támogató osztálykönyvtárak.
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.
JVM kapcsolók 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).
Licenc 2006. november 13-án, a Sun JVM és JDK licenceltté vált 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 JDK7 , Sun.).
Támogatott platformok Oracle által karbantartott 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).
Harmadik fél általi portolások 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. Ezt orvosolandó, az IcedTea 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.
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.
Jegyzetek
További információk 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
Kapcsolódó szócikkek Java virtuális gépek listája Java teljesítmény OpenJDK Da Vinci gép, egy kezdődő Sun projekt, amely a prototípus-készítést célozta meg, a JVM olyan kiterjesztéséhez, melynek segítségével támogatást lehet biztosítani a dinamikus nyelvekhez. Java virtuális gép heap Alkalmazás virtuális gépek összehasonlítása
Fordítás
Kategória:Java virtuális gépek Kategória:Oracle-szoftverek