Кіріспе
Java виртуалды машинасы, Java HotSpot Performance Engine ретінде жарияланды. Animorphic компаниясын сатып алғаннан кейін көп ұзамай, Sun Java виртуалды машинасы үшін HotSpot серверлік компиляторы (ішкі атауы C2) деп аталған, жаңа, күшті JIT компиляторын жасауға шешім қабылдады. Бұл компилятор бастапқыда Клиффорд Кликпен әзірленген және компиляторларды оңтайландыру тақырыбындағы докторлық диссертациясының кеңейтілген нұсқасы болды. HotSpot атауы бағдарламалық қамтамасының жұмыс істеу принципінен туындаған: Java байт-кодын орындағанда, Self VM сияқты, HotSpot бағдарламаның өнімділігін үнемі талдап, жиі немесе қайталап орындалатын «ыстық нүктелерді» анықтайды. Осы нүктелер оңтайландыруға бағытталды, нәтижесінде аз маңызды код үшін минимал шығындармен жоғары өнімділікке қол жеткізіледі. Бір есепте JVM кейбір тесттерде C++ немесе C кодтарынан озып кетті. Алғашқыда Java 1.2-ге қосымша ретінде қолжетімді болған HotSpot, Java 1.3 нұсқасында стандартты Sun JVM болды.
HotSpot, released as Java HotSpot Performance Engine,
Shortly after acquiring Animorphic, Sun decided to write a new stronger just in time (JIT) compiler for the Java virtual machine, named HotSpot server compiler (internal name C2), which was initially developed by Clifford Click and was an extension of his PhD thesis on optimizing compilers. The compiler name HotSpot is derived from the software's behavior: as it runs Java bytecode, as with the Self VM, HotSpot continually analyzes the program's performance for hot spots which are executed often or repeatedly. These are then targeted for optimizing, leading to high performance execution with a minimum of overhead for less performance critical code. In one report, the JVM beat some C++ or C code in some benchmarks. Initially available as an add on for Java 1.2, HotSpot became the default Sun JVM in Java 1.3.
JVM жалаушалары
HotSpot виртуалды машинаны іске қосу опциялары үшін көптеген командалық жол аргументтерін қолдайды. Олардың кейбіреулері стандартты болып табылады және кез келген сәйкес Java виртуалды машинасынан табылуы тиіс; ал қалғандары HotSpot-қа ғана тән және басқа JVM-дерде кездеспеуі мүмкін (X немесе XX әрпімен басталатын опциялар стандартты емес).
Лицензия
2006 жылдың 13 қарашасында HotSpot JVM және Java Development Kit (JDK) GNU General Public License (GPL) 2 нұсқасымен лицензияланды. Осы код Java 7 құрамына кірді.
Oracle-тің қолдауымен
Java Development Kit (JDK) сияқты, HotSpot та Windows, Linux және macOS жүйелерінде Oracle Corporation қолдауында. Қолдау көрсетілетін нұсқаулар жиынтығы архитектуралары (ISA) – x86 64 және AArch64. JDK 15 нұсқасынан бастап Solaris және SPARC қолдауы тоқтатылды.
Үшінші тараптар порттарын
Порттар басқа Unix операциялық жүйелері үшін де үшінші тараптар арқылы қолжетімді. x86, PowerPC және SPARC (тек Solaris) сияқты бірнеше түрлі аппараттық архитектуралар қолдау көрсетіледі. HotSpot-ты порттау қиын, себебі оның көп бөлігі дерлік толығымен ассемблер тілінде жазылған, алайда оның бірнеше бөлімдері таза стандартқа сәйкес ISO C++ тілінде де жазылған. Бұл мәселені шешу үшін IcedTea жобасы HotSpot интерпретаторының жалпы портын әзірледі, ол "нөлдік ассемблер Hotspot" (немесе "нөл") деп аталады және дерлік ассемблер кодын қамтымайды. Бұл порт HotSpot интерпретаторының компонентін кез келген Linux процессор архитектурасына оңай бейімдеу үшін жасалған. "Нөлдік ассемблер Hotspot" коды 1.6 нұсқасынан бастап HotSpot-тың x86 емес барлық архитектураларындағы порттары үшін қолданылады (PowerPC, Itanium (IA 64), S390 және ARM).