hotspot | |
---|---|
Typ | Java virtuální stroj |
Vývojář | Oracle (dříve Sun Microsystems ) |
Zapsáno v | C++ |
Operační systém | Multiplatformní software |
První vydání | 1999 [1] |
Nejnovější verze | 25,77-b03 |
Licence | GNU General Public License |
webová stránka | openjdk.java.net/groups/… |
HotSpot je základní virtuální stroj Java (JVM) pro klientské i serverové počítače , vydaný společností Oracle Corporation. Pro zlepšení výkonu má technologie dynamické kompilace a adaptivní optimalizace JIT .
HotSpot, poprvé vydaný 27. dubna 1999, byl původně vyvinut Longview Technologies, malou společností založenou v roce 1994 . V roce 1997 koupila společnost Sun Microsystems [2] . Nejprve byl HotSpot používán jako doplněk k Javě 1.2, nicméně tento virtuální stroj se stal hlavním s vydáním Javy 1.3 [3] .
Tento JVM se nazývá „HotSpot“, protože při provádění bajtkódu „Java“ hledá svá „horká“ místa (anglicky „horká místa“) – opakovaně spouštěná. Hledání je zaměřeno na optimalizaci jejich provádění: poskytuje jim více zdrojů spolu se snížením režie pro provádění méně náročného kódu.
HotSpot je často označován jako nejvýkonnější JVM ve své třídě. Teoreticky může být program, který běží v tomto JVM, pomocí adaptivní optimalizace výkonnější než jeho nativní ekvivalent [4] .
Virtuální stroj "HotSpot" je napsán v " C++ ". Jak je uvedeno na domovské stránce HotSpot, velikost jeho zdrojového kódu je 250 000 řádků [5] . Hotspot poskytuje následující funkce:
Klientská verze virtuálního stroje se vyznačuje kratší dobou spouštění aplikace a menší spotřebou paměti ve srovnání se serverovou verzí, zatímco serverové verzi podléhá ve výkonu.
"HotSpot" podporuje velké množství argumentů příkazového řádku pro konfiguraci virtuálního stroje při spuštění. Některé z nich jsou standardní a podporované jinými implementacemi JVM , jiné nikoli, protože jsou specifické (možnosti začínající na -Xnebo -XX) [6] [7] [8] [9] .
13. listopadu 2006 byly virtuální stroje a JDK společnosti Sun Microsystems vydány pod licencí GPL v2 [10] (viz stránka Sun OpenJDK Hotspot ). Tento kód se stal součástí Java 7.
Pokud jde o JDK , HotSpot je v současné době podporován společností Oracle na operačních systémech Microsoft Windows , Linux a Solaris . Podporu pro ISA poskytují platformy IA-32 , x86-64 a SPARC (pouze na Solarisu). [jedenáct]
K dispozici jsou také porty třetích stran pro Mac OS X a další unixové operační systémy . Je podporováno několik různých hardwarových architektur, včetně x86, PowerPC a SPARC (pouze Solaris).
Portování HotSpot je komplikováno skutečností, že tento virtuální stroj je napsán převážně v jazyce C++ pomocí vložek v assembleru [12] . Aby se tomu zabránilo, projekt IcedTea vyvinul generický port interpretu HotSpot nazvaný zero-assembler Hotspot (nebo jednoduše zero ), který obsahuje málo nebo žádný kód sestavení. Tento port je vyvíjen s cílem učinit HotSpot přenositelným na různé linuxové procesorové architektury , takže je přenosný téměř neomezeně. Kód Zero-assembler Hotspot se používá pro všechny architektury jiné než x86 ( PPC , IA64 , S390 a ARM ) od verze 1.6 [13] [14] [15] .
Gary Benson , vývojář IcedTea, v současné době vyvíjí na platformě nezávislou implementaci dynamické kompilace JIT nazvanou Shark for HotSpot využívající LLVM jako doplněk k nulovému asembleru Hotspot [16] [17] .
Java Virtual Machines ( srovnání ) | |
---|---|
Sun , Oracle | |
Hlavní implementace | |
Vložené |
|
jiný | |
Nepodporováno |