HotSpot (virtuální stroj) - HotSpot (virtual machine) - Wikipedia
Tento článek je hlavní část může být příliš krátká na to, aby adekvátně shrnout jeho klíčové body.Říjen 2018) ( |
Původní autoři | Sun Microsystems |
---|---|
Vývojáři | Oracle Corporation |
První vydání | 27.dubna 1999[1] |
Stabilní uvolnění | 23.25-b01 / 1. ledna 2016 |
Napsáno | C ++, Shromáždění |
Operační systém | Cross-platform |
Typ | Virtuální stroj Java |
Licence | Proprietární (dřívější verze), GNU General Public License (proud) |
webová stránka | openjdk |
HotSpot, vydáno jako Výkonový modul Java HotSpot,[1] je Virtuální stroj Java pro plocha počítače a serveru počítače, udržované a distribuované Oracle Corporation. Vylepšuje výkon pomocí metod, jako je just-in-time kompilace a adaptivní optimalizace.
Dějiny
Java HotSpot Performance Engine byl vydán 27. dubna 1999,[1] postaveno na technologiích implementace programovacího jazyka Pokec pojmenovaný Strongtalk, původně vyvinutý společností Longview Technologies, která se obchoduje jako Animorphic. Virtuální stroj Longview byl založen na Já virtuální stroj s tlumočníkem nahrazujícím rychlého a hloupého prvního kompilátoru. Když Sun zrušil projekt Self, dva klíčoví lidé, Urs Hölzle a Lars Bak opustil Slunce, aby spustil Longview. V roce 1997 Sun Microsystems koupil Animorphic.[2]
Krátce po získání Animorphic se Sun rozhodl napsat nový kompilátor just-in-time (JIT) pro virtuální stroj Java.[3] Tento nový překladač by dal vzniknout jménu HotSpot, odvozené z chování softwaru: jak běží Bajtový kód Java, stejně jako u Self VM, HotSpot neustále analyzuje výkon programu horká místa které se provádějí často nebo opakovaně. Ty jsou pak zaměřeny na optimalizace, což vede k vysoce výkonnému provedení s minimem režijních nákladů pro méně výkonný kód. V jedné zprávě JVM některé porazil C ++ nebo C kód v některých benchmarcích.[4]
Zpočátku k dispozici jako doplněk pro Javu 1.2,[5] HotSpot se stal výchozím Sun JVM v Javě 1.3.[6]
Funkce
JRE (původně od společnosti Sun, nyní od společnosti Oracle) obsahuje dva virtuální stroje, jeden s názvem Klient a ostatní Server. Verze klienta je vyladěna pro rychlé načítání. Využívá tlumočení. Verze serveru se načítá pomaleji a vynakládá větší úsilí na výrobu vysoce optimalizovaných Kompilace JIT přinést vyšší výkon. Oba virtuální počítače kompilují pouze často spouštěné metody, přičemž k rozhodování o tom, které metody se mají kompilovat, se používají konfigurovatelné prahové hodnoty počtu vyvolání.
Odstupňovaná kompilace, možnost zavedená v prostředí Java 7, používá klientské i serverové kompilátory v tandemu, aby poskytla rychlejší dobu spuštění než kompilátor serveru, ale podobný nebo lepší špičkový výkon.[7] Počínaje verzí Java 8 je odstupňovaná kompilace výchozí pro virtuální počítač serveru.[8]
HotSpot je napsán C ++. V roce 2007 společnost Sun odhadovala, že obsahuje přibližně 250 000 řádků zdrojového kódu.[9] Hotspot poskytuje:
- A Java Classloader
- A Bajtový kód Java tlumočník
- Klient a Server virtuální stroje, optimalizované pro jejich příslušná použití
- Několik sběrači odpadků (včetně ZGC s velmi nízkou pauzou)[10][11]
- Sada podpůrných běhových knihoven
Příznaky JVM
HotSpot podporuje mnoho argumenty příkazového řádku pro možnosti spuštění virtuálního stroje. Některé jsou standardní a je třeba je najít v každém vyhovujícím Virtuální stroj Java; jiné jsou specifické pro HotSpot a nemusí být k dispozici v jiných JVM (možnosti začínající na -X nebo -XX jsou nestandardní).[12][13][14][15]
Licence
Dne 13. Listopadu 2006 HotSpot JVM a Vývojová sada Java (JDK) byly licencovány pod GNU General Public License (GPL) verze 2.[16] Toto je kód, který se stal součástí Java 7.[17]).
Podporované platformy
Udržováno společností Oracle
Stejně jako u celého Vývojová sada Java (JDK), HotSpot podporuje Oracle Corporation na Okna, Linux, Operační Systém Mac, a Solaris. Podporováno instrukční sada architektury (ISA) jsou IA-32, x86-64, ARMv7 VFP, ARMv8 a SPARC (Pouze Solaris).[18]
Přístavy třetích stran
Porty jsou také k dispozici třetím stranám pro různé jiné Unix operační systémy. Je podporováno několik různých hardwarových architektur, včetně x86, PowerPC a SPARC (pouze Solaris).
Přenos HotSpot je obtížný, protože kód je většinou napsán C ++, obsahuje mnoho montážní jazyk.[19] Chcete-li to napravit, Ledový čaj projekt vyvinul obecný port HotSpotu tlumočník volala hotspot zero-assembler (nebo nula), s téměř žádným montážním kódem. Tento port je určen pro snadné přizpůsobení tlumočnické komponenty HotSpot libovolné Linux architektura procesoru. Kód hotspot zero-assembler se používá pro všechnyx86 porty architektury HotSpot (PowerPC, Itanium (IA-64 ), S390 a PAŽE ) od verze 1.6.[20][21][22]
Viz také
- Seznam virtuálních strojů Java
- Porovnání virtuálních strojů Java
- Výkon Java
- OpenJDK
- Stroj Da Vinci, projekt prototypu rozšíření JVM pro přidání podpory pro dynamické programovací jazyky
Reference
- ^ A b C „Sun oznamuje dostupnost výkonového modulu Java HotSpot“. Tisková zpráva. Sun Microsystems. Citováno 26. března 2013.
- ^ Services, Chronicle Staff and News (1997-02-19). „SUN MICRO KUPUJE DLOUHÝ POHLED“. SFGATE. Citováno 2020-11-05.
- ^ „Cliff Click on Azul's Pauseless GC, Zing, JVM Languages“. InfoQ. 2011-01-20. Citováno 2016-05-10.
[...] Anamorphic získal Sun, takže původní tým byl ve společnosti s názvem Anamorphic, přišli s technologií zaměřenou na Smalltalk a znovu ji zacílili na Javu a krátce nato mě najali, abych udělal nový JIT pro jejich virtuální stroj.
- ^ Lewis, J. P. (2004). „Performance of Java versus C ++“. Archivovány od originál dne 2020-04-24. Citováno 2007-10-03.
- ^ Shankland, Stephen (18. února 1999). „HotSpot se konečně proslavil“. Cnet.
- ^ „Sun Microsystems vydává dosud nejrychlejší platformu Java na straně klienta“. Sun Microsystems. 8. 5. 2000. Citováno 2007-10-03.
- ^ „Vylepšení výkonu virtuálního stroje Java ™ HotSpot“. docs.oracle.com.
- ^ „Vylepšení výkonu virtuálního stroje Java ™ HotSpot“. docs.oracle.com.
- ^ „Skupina HotSpot“. Sun Microsystems. 2007. Citováno 2007-10-03.
Existuje téměř 1 500 záhlaví C / C ++ a zdrojové soubory, které obsahují téměř 250 000 řádků kódu
- ^ „Hlavní - ZGC“. OpenJDK Wiki.
- ^ „HotSpot Průvodce laděním odpadu virtuálního stroje (Java 14)“. Centrum nápovědy Oracle.
- ^ „Možnosti Java HotSpot VM“. Sun Microsystems. Citováno 2009-02-08.
- ^ Mocker, Joseph D. (2007-08-28). „Sbírka možností JVM“. Archivovány od originál dne 2011-04-30. Citováno 2009-02-08.
- ^ Maximovich, Dmitri. "Nejúplnější seznam možností -XX pro Java 6 JVM". Archivovány od originál dne 30. 1. 2010. Citováno 2009-02-08.
- ^ Nutter, Charles (2009-01-29). „Moje oblíbené hotspotové vlajky JVM“. Citováno 2009-02-08.
- ^ „Sun Open Sources Java Technology a vydává zdrojový kód pod licencí GPL verze dva prostřednictvím komunit NetBeans a Java.net“. Sun Microsystems. 13. 11. 2006. Archivovány od originál dne 09.02.2009. Citováno 2017-05-06.
- ^ JDK7, Slunce.
- ^ „Konfigurace certifikovaných systémů Oracle JDK 8 a JRE 8“. Oracle Corporation. Citováno 2017-05-18.
- ^ Gary, Benson (06.11.2007). „Garyho průvodce portováním IcedTea“. Archivovány od originál dne 2012-07-12. Citováno 2008-01-26.
- ^ Gary, Benson (01.02.2008). „1. února 2008“. Archivovány od originál dne 10.7.2012. Citováno 2008-02-03.
- ^ Andrew, Haley (2008-01-31). "Nastavování nulového assembleru jako výchozího na PPC". Citováno 2008-02-03.
- ^ Lilian, Angel (2008-02-13). „IcedTea 1.6 Vydáno s podporou Zero-assembler a JNLP!“. červená čepice. Citováno 2008-02-13.
externí odkazy
- Oficiální webové stránky
- Seznam HotSpot VMOptions
- Specifikace Java Virtual Machine
- Historie původního týmu Strongtalk-HotSpot
- „Sun oznamuje dostupnost Java Hotspot Performance Engine“. Archivovány od originálu 18. prosince 2006. Citováno 27. března 2014.CS1 maint: BOT: stav původní adresy URL neznámý (odkaz)
- Úložiště vývoje zdrojového kódu HotSpot Mercurial (systém pro správu verzí) pro JDK8