HotSpot
| HotSpot | |
| Fejlesztő | Oracle Corporation (korábban Sun Microsystems) |
| Legfrissebb stabil kiadás | 20.0-b11 +/- |
| Legfrissebb fejlesztői kiadás | ismeretlen +/- |
| Programozási nyelv | C++ |
| Operációs rendszer | platformfüggetlen |
| Kategória | Java virtuális gép |
| Licenc | GNU General Public License |
| A HotSpot weboldala | |
A HotSpot egy Java virtuális gép desktop-okra é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ó, melyet a teljesítmény javítására terveztek.
Tartalomjegyzék |
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 spot"-ok), 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 JRE két virtuális gépet ad, 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. Minden VM csak a gyakran futó metódusokat fordítja le, oly módon, hogy konfigurálható hívás-számláló-küszöbszámokat használ, hogy eldöntse éppen melyik metódust fordítsa le.
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 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.[5]
JVM kapcsolók [szerkesztés]
A HotSpot számos parancssori argumentrumot 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-adikán, a Sun JVM és JDK linenceltté 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 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ű adoptá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]
Lásd még [szerkesztés]
- 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 dynamikus nyelvekhez.
- Java virtuális gép heap
- Alkalmazás virtuális gépek összehasonlítása
Jegyzetek [szerkesztés]
- ↑ Sun's Gosling Previews Hotspot Java Virtual Machine. ComputerGram, 1998. február 13. (Hozzáférés: 2008. április 20.)
- ↑ Sun Microsystems releases fastest client-side Java platform to date. Sun Microsystems, 2000. május 8. (Hozzáférés: 2007. október 3.)
- ↑ Lewis, J.P.: Performance of Java versus C++, 2004. (Hozzáférés: 2007. október 3.)
- ↑ 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”
- ↑ What is jucheck.exe?. Java.com. (Hozzáférés: 2011. augusztus 17.)
- ↑ Java HotSpot VM Options. Sun Microsystems. (Hozzáférés: 2009. február 8.)
- ↑ 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.)
- ↑ 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.)
- ↑ Nutter, Charles: My Favorite Hotspot JVM Flags, 2009. január 29. (Hozzáférés: 2009. február 8.)
- ↑ Sun Opens Java. Sun Microsystems, 2006. november 13. (Hozzáférés: 2007. október 3.)
- ↑ JDK7, Sun.
- ↑ Supported System Configurations. Sun Microsystems. (Hozzáférés: 2008. január 26.)
- ↑ Gary, Benson: Gary's guide to porting IcedTea, 2007. november 6. (Hozzáférés: 2008. január 26.)
- ↑ Gary, Benson: 1st February 2008, 2008. február 1. (Hozzáférés: 2008. február 3.)
- ↑ Andrew, Haley: Making zero-assembler the default on ppc, 2008. január 31. (Hozzáférés: 2008. február 3.)
- ↑ 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.)
- ↑ Gary, Benson: 31 March 2008. Red hat, 2008. március 31. (Hozzáférés: 2008. május 30.)
- ↑ 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”
Külső hivatkozások [szerkesztés]
- 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
|
|||||||||||||||||

