Русская Википедия: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» поддерживает большое количество en (Command-line argument) для настройки виртуальной машины при запуске. Некоторые из них — стандартные и поддерживаются другими реализациями 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].

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

См. также

Примечания

Шаблон:Примечания

Ссылки

Шаблон:Java Virtual Machine