Ekb-oskab.ru

Прием лома металлов

HotSpot

15-10-2023

HotSpot
Тип

Java Virtual Machine

Разработчик

Oracle (ранее Sun Microsystems)

Написана на

C++

Операционная система

Кроссплатформенное ПО

Последняя версия

16.3-b01

Лицензия

GNU General Public License

Сайт

Sun's OpenJDK Hotspot page

HotSpot — это основная виртуальная машина Java для настольных компьютеров и серверов, выпускаемая корпорацией Oracle. Обладает технологиями динамической компиляции JIT и адаптивной оптимизации (англ.), предназначенными для повышения производительности.

Содержание

История

HotSpot, которая впервые была выпущена 27 апреля 1999 года, была изначально разработкой Longview Technologies, небольшой компании, основанной в 1994 году. В 1997 году компанию купила Sun Microsystems[1]. Сначала HotSpot использовали как дополнение к Java 1.2, однако, эта виртуальная машина стала основной с выходом Java 1.3[2]. Название «HotSpot» происходит из того факта, что, выполняя байткод Java, эта JVM непрерывно анализирует выполняемую программу на так называемые «горячие места» (англ. «hot spots»), которые часто повторно выполняются. Эти действия направлены на оптимизацию выполнения этих участков кода, выделяя им больше ресурсов, в то же время уменьшая непроизводительные затраты для выполнения менее ресуркоемкого кода. HotSpot часто провозглашают самой производительной виртуальной машиной Java в своем классе. В теории с помощью адаптивной оптимизации программа, которая выполняется в этой JVM может быть более производительной, чем эквивалентная ей программа в машинных кодах[3].

Особенности

Виртуальная машина HotSpot написана на C++. Как указано на домашней странице HotSpot, размер её исходного кода составляет 250,000 строк[4]. Hotspot предоставляет следующий функционал:

Client-версия виртуальной машины характеризуется меньшим временем запуска приложений и меньшим потреблением памяти по сравнению с Server-версией, уступая при этом последней в производительности.

JVM флаги

HotSpot поддерживает большое количество аргументов командной строки (англ.) для настройки виртуальной машины при запуске. Некоторые из них стандартные и поддерживаются другими реализациями JVM, другие же специфичны и не поддерживаются другими виртуальными машинами (опции которые начинаются с -X или -XX — нестандартные)[5][6][7][8].

Лицензия

Sun’s OpenJDK Hotspot page). Этот код станет частью Java 7.

Поддерживаемые платформы

Поддерживаемые Sun Microsystems

Что касается JDK, HotSpot на данный момент поддерживается Oracle в операционных системах Microsoft Windows, Linux, и Solaris. Поддержка ISAs представлена платформами IA-32, x86-64 и SPARC (только в Solaris).[10]

Порты от сторонних разработчиков

Так же доступны порты сторонних разработчиков для Mac OS X и других операционных систем Unix. Поддерживается несколько различных аппаратных архитектур, включая x86, PowerPC и SPARC (только в Solaris).

Портирование HotSpot усложнено тем, что данная виртуальная машина написана в основном на C++ с использованием вставок на ассемблере[11]. Чтобы избежать этого, проект IcedTea разработал общий порт интерпретатора HotSpot под названием zero-assembler Hotspot (или просто zero) который практически не содержит ассемблерного кода. Данный порт разрабатывается с целью достижения портируемости HotSpot на различные процессорные архитектуры Linux, что сделает его практически неограниченно портируемым. Код zero-assembler Hotspot используется для всех архитектур отличных от x86, (PPC, IA64, S390 и ARM) начиная с версии 1.6[12][13][14].

Гари Бенсон (англ. Gary Benson), разработчик IcedTea, в данный момент разрабатывает платформонезависимую реализацию динамической компиляции JIT под названием Shark для HotSpot, с использованием LLVM, в дополнение к zero-assembler Hotspot[15][16].

См. также

Примечания

  1. Sun's Gosling Previews Hotspot Java Virtual Machine. ComputerGram (13 февраля 1998). Проверено 25 июля 2010.
  2. Sun Microsystems releases fastest client-side Java platform to date. Sun Microsystems (8 мая 2000). Проверено 25 июля 2010.
  3. Performance of Java versus C++ (2004). Проверено 25 июля 2010.
  4. The HotSpot Group. Sun Microsystems (2007). — «There are nearly 1500 C/C++ header and source files, comprising almost 250,000 lines of code»  Проверено 21 июля 2010.
  5. Java HotSpot VM Options. Sun Microsystems. Проверено 8 февраля 2009.
  6. A Collection of JVM Options (28 августа 2007). Проверено 20 июля 2010.
  7. The most complete list of -XX options for Java 6 JVM. Проверено 20 июля 2010.
  8. My Favorite Hotspot JVM Flags (29 января 2009). Проверено 20 июля 2010.
  9. Sun Opens Java. Sun Microsystems (13 ноября 2006). Проверено 20 июля 2010.
  10. Supported System Configurations. Oracle. Проверено 1 января 2011.
  11. Gary's guide to porting IcedTea (6 ноября 2007). Проверено 21 июля 2010.
  12. 1st February 2008 (1 февраля 2008). Проверено 21 июля 2010.
  13. Making zero-assembler the default on ppc (31 января 2008). Проверено 21 июля 2010.
  14. IcedTea 1.6 Released with Zero-assembler and JNLP support!. Red hat (13 февраля 2008). Проверено 21 июля 2010.
  15. 31 March 2008. Red hat (21 июля 2010). Проверено 30 мая 2008.
  16. 28 May 2008. Red hat (28 мая 2008). — «Shark is a platform-independent JIT for HotSpot, to complement the zero-assembler interpreter we’ve been using»  Проверено 21 июля 2010.

Ссылки

  • 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

HotSpot.

© 2018–2023 ekb-oskab.ru, Россия, Челябинск, ул. Горького 53, +7 (351) 992-98-28