Лучшие вопросы
Таймлайн
Чат
Перспективы
HotSpot
Из Википедии, свободной энциклопедии
Remove ads
«HotSpot» — основная виртуальная машина Java (JVM) как для клиентских, так и для серверных компьютеров, выпускаемая корпорацией «Oracle». Для повышения производительности обладает технологиями динамической компиляции JIT и адаптивной оптимизации.
Remove ads
История
«HotSpot», впервые выпущенная 27 апреля 1999 года, изначально разрабатывалась «Longview Technologies» — небольшой компанией, основанной в 1994 году. В 1997 году компанию купила Sun Microsystems[2]. Сначала «HotSpot» использовали как дополнение к «Java 1.2», однако, эта виртуальная машина стала основной с выходом «Java 1.3»[3].
Этимология
Эта JVM называется «HotSpot» потому что, выполняя байт-кода «Java», она ищет его «горячие» места (англ. «hot spots») — многократно выполняющиеся. Поиск направлен на оптимизацию их выполнения: выделение им больших ресурсов вместе с уменьшением непроизводительных затрат для выполнения менее ресурсоёмкого кода.
Перспективы
«HotSpot» часто называют самой производительной виртуальной машиной Java в своём классе. В теории, — с помощью адаптивной оптимизации, — программа, которая выполняется в этой JVM, может быть более производительной, чем эквивалентная ей программа в машинных кодах[4].
Remove ads
Особенности
Виртуальная машина «HotSpot» написана на «C++». Как указано на домашней странице «HotSpot», размер её исходного кода составляет 250 000 строк[5]. «Hotspot» предоставляет следующую функциональность:
- Загрузчик Java-классов;
- Интерпретатор байткода;
- Две версии виртуальной машины — Client и Server;
- Несколько сборщиков мусора;
- Набор вспомогательных библиотек времени выполнения.
Client-версия виртуальной машины характеризуется меньшим временем запуска приложений и меньшим потреблением памяти по сравнению с Server-версией, уступая при этом последней в производительности.
JVM-флаги
«HotSpot» поддерживает большое количество аргументов командной строки[англ.] для настройки виртуальной машины при запуске. Некоторые из них — стандартные и поддерживаются другими реализациями JVM, другие же — нет, так как специфичны (опции, которые начинаются с -X
или -XX
)[6][7][8][9].
Remove ads
Лицензия
13 ноября 2006 года виртуальная машина и JDK от Sun Microsystems были открыты[10] под лицензией 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).[11]
Порты от сторонних разработчиков
Доступны также порты сторонних разработчиков для Mac OS X и других операционных систем Unix. Поддерживается несколько различных аппаратных архитектур, включая x86, PowerPC и SPARC (только в Solaris).
Портирование HotSpot усложнено тем, что данная виртуальная машина написана в основном на C++ с использованием вставок на ассемблере[12]. Чтобы избежать этого, проект IcedTea разработал общий порт интерпретатора HotSpot под названием zero-assembler Hotspot (или просто zero) который практически не содержит ассемблерного кода. Данный порт разрабатывается с целью достижения портируемости HotSpot на различные процессорные архитектуры Linux, что сделает его практически неограниченно портируемым. Код zero-assembler Hotspot используется для всех архитектур, отличных от x86 (PPC, IA64, S390 и ARM), начиная с версии 1.6[13][14][15].
Гари Бенсон (англ. Gary Benson), разработчик IcedTea, в данный момент разрабатывает платформонезависимую реализацию динамической компиляции JIT под названием Shark для HotSpot, с использованием LLVM, в дополнение к zero-assembler Hotspot[16][17].
Remove ads
См. также
Примечания
Ссылки
Wikiwand - on
Seamless Wikipedia browsing. On steroids.
Remove ads