HotSpot
Тип | Java Virtual Machine |
---|---|
Розробник | Oracle (раніше Sun Microsystems) |
Стабільний випуск | 16.3-b01 |
Операційна система | Багатоплатформність |
Мова програмування | C++ |
Ліцензія | GNU General Public License |
Вебсайт | Sun's OpenJDK Hotspot page |
HotSpot —- це основна Віртуальна машина Java для персональних комп'ютерів та серверів, розроблена Sun Microsystems. Для збільшення продуктивності у ній використовуються такі технології як JIT компіляція та адаптовна оптимізація.
HotSpot, яку вперше було випущено 27 квітня 1999 року, була спочатку розробкою Longview Technologies, невеликої компанії, заснованої у 1994 році. У 1997 компанію купила Sun Microsystems. Спочатку HotSpot використовували як додаток до Java 1.2, проте, ця віртуальна машина стала основною з виходом Java 1.3. Назва «HotSpot» походить з того факту, що, виконуючи байткод Java, ця JVM безперервно аналізує виконувану програму на так звані «гарячі місця» (англ. «hot spots»), що часто повторно виконуються. Ці дії направлені на оптимізацію виконання цих частин, виділяючи їм більше ресурсів, в той же час зменшуючи непродуктивні витрати для виконання менш ресурсоємкого коду. HotSpot часто проголошують найпродуктивнішою віртуальною машиною Java в своєму класі. В теорії, хоча рідко на практиці, з допомогою адаптивної оптимізації, програма, що виконується цією JVM може бути продуктивнішою ніж еквівалентна в машинних кодах.
Існує два види цієї віртуальної машини: клієнстька та серверна. Клієнтську версію настроєно для швидкого завантаження. Вона використовує інтерпретування, компілюючи тільки методи, що часто запускаються. Серверна версія завантажується повільніше, виконуючи високооптимізовану JIT компіляцію, що приводить до збільшення продуктивності.
Віртуальна машина Java HotSpot написана на C++. Як заявлено на вебсайті HotSpot, програма містить приблизно 250.000 рядків коду. У HotSpot є:
- Завантажувач класів,
- Інтерпретатор байткоду,
- Клієнтську і серверну віртуальні машини, оптимізовані для відповідного використання
- Декілька збирачів сміття,
- Набір динамічних бібліотек.
13 листопада 2006 року, віртуальна машина Java та JDK корпорації Sun стали розповсюджуватися під GPL.
Як і увесь JDK, HotSpot від Sun Microsystems доступна для Microsoft Windows, Linux та Solaris. Доступні також порти від третіх сторін для Mac OS X та інших Unix систем.
Портування HotSpot на інші платформи дуже складне через те, що вихідний код, крім C++ містить також асемблерні вставки. Проект IcedTea має на меті узагальнити порт HotSpot інтерпретатора з мінімальною кількістю асемблерного коду. Це значно полегшить адаптацію інтерпертатора HotSpot до будь-якої архітектури процесора, зробивши його «безмежно портативним».
Ґері Бенсон, один із учасників проекту IcedTea, зараз займається розробкою платформонезалежного JIT Java компілятора Shark for HotSpot, щоб доповнити проект. У разі успіху ця праця зробить віртуальну машину Java незалежну від архітектури процесора.
- Сторінка OpenJDK Hotspot [Архівовано 3 квітня 2019 у Wayback Machine.]
- Sun's HotSpot [Архівовано 15 червня 2006 у Wayback Machine.]