HotSpot

Материал из Википедии — свободной энциклопедии
Перейти к: навигация, поиск
HotSpot
Тип

Java Virtual Machine

Разработчик

Oracle (ранее Sun Microsystems)

Написана на

C++

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

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

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

25.77-b03

Лицензия

GNU General Public License

Сайт

openjdk.java.net/groups/hotspot/

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

История[править | править вики-текст]

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

Этимология[править | править вики-текст]

Эта JVM называется «HotSpot», потому что, выполняя байт-кода «Java», она ищет его «горячие» места (англ. «hot spots») — многократно выполняющиеся. Поиск направлен на оптимизацию их выполнения: выделение им больших ресурсов, вместе с уменьшением непроизводительных затрат для выполнения менее ресурсоёмкого кода.

Перспективы[править | править вики-текст]

«HotSpot» часто называют самой производительной виртуальной машиной Java в своём классе. В теории, — с помощью адаптивной оптимизации, — программа, которая выполняется в этой JVM может быть более производительной, чем эквивалентная ей программа в машинных кодах[3].

Особенности[править | править вики-текст]

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

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

JVM флаги[править | править вики-текст]

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

Лицензия[править | править вики-текст]

13 ноября 2006 года виртуальная машина и JDK от Sun Microsystems были открыты[9] под лицензией GPL v2 (см. 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 мая 2012.
  3. Lewis, J.P. Performance of Java versus C++ (2004). Проверено 25 июля 2010. Архивировано из первоисточника 3 мая 2012.
  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. Архивировано из первоисточника 3 мая 2012.
  5. Java HotSpot VM Options. Sun Microsystems. Проверено 8 февраля 2009. Архивировано из первоисточника 3 мая 2012.
  6. Mocker, Joseph D. A Collection of JVM Options (28 августа 2007). Проверено 20 июля 2010. Архивировано из первоисточника 13 октября 2012.
  7. Maximovich, Dmitri The most complete list of -XX options for Java 6 JVM. Проверено 20 июля 2010. Архивировано из первоисточника 13 октября 2012.
  8. Nutter, Charles My Favorite Hotspot JVM Flags (29 января 2009). Проверено 20 июля 2010. Архивировано из первоисточника 3 мая 2012.
  9. Sun Opens Java. Sun Microsystems (13 ноября 2006). Проверено 20 июля 2010. Архивировано из первоисточника 3 мая 2012.
  10. Supported System Configurations. Oracle. Проверено 1 января 2011. Архивировано из первоисточника 3 мая 2012.
  11. Gary, Benson Gary's guide to porting IcedTea (6 ноября 2007). Проверено 21 июля 2010. Архивировано из первоисточника 3 мая 2012.
  12. Gary, Benson 1st February 2008 (1 февраля 2008). Проверено 21 июля 2010. Архивировано из первоисточника 3 мая 2012.
  13. Andrew, Haley Making zero-assembler the default on ppc (31 января 2008). Проверено 21 июля 2010. Архивировано из первоисточника 3 мая 2012.
  14. Lilian, Angel IcedTea 1.6 Released with Zero-assembler and JNLP support!. Red hat (13 февраля 2008). Проверено 21 июля 2010. Архивировано из первоисточника 3 мая 2012.
  15. Gary, Benson 31 March 2008. Red hat (21 июля 2010). Проверено 30 мая 2008. Архивировано из первоисточника 3 мая 2012.
  16. Gary, Benson 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. Архивировано из первоисточника 3 мая 2012.

Ссылки[править | править вики-текст]