HotSpot (виртуальная машина) - HotSpot (virtual machine)
Эта статья ведущий раздел может быть слишком коротким, чтобы адекватно подвести итог его ключевые моменты.Октябрь 2018 г.) ( |
Оригинальный автор (ы) | Sun Microsystems |
---|---|
Разработчики) | Корпорация Oracle |
изначальный выпуск | 27 апреля 1999 г.[1] |
Стабильный выпуск | 23.25-b01 / 1 января 2016 г. |
Написано в | C ++, сборка |
Операционная система | Кроссплатформенность |
Тип | Виртуальная машина Java |
Лицензия | Проприетарный (ранние версии), Стандартная общественная лицензия GNU (Текущий) |
Интернет сайт | openjdk |
HotSpot, выпущенный как Механизм производительности Java HotSpot,[1] это Виртуальная машина Java за рабочий стол и сервер компьютеры, обслуживаемые и распространяемые Корпорация Oracle. Он отличается улучшенной производительностью с помощью таких методов, как своевременная компиляция и адаптивная оптимизация.
История
Механизм производительности Java HotSpot был выпущен 27 апреля 1999 г.[1] построены на технологиях из реализации языка программирования Болтовня названный Strongtalk, первоначально разработанная Longview Technologies, которая торговалась как Animorphic. Виртуальная машина Longview была основана на Себя виртуальная машина, с интерпретатором, заменяющим быстрый и немой первый компилятор. Когда Sun отменила проект Self, два ключевых человека, Урс Хёльцле и Ларс Бак покинул Sun, чтобы запустить Longview. В 1997 г. Sun Microsystems приобрел Animorphic.[2]
Вскоре после приобретения Animorphic Sun решила написать новый JIT-компилятор для виртуальной машины Java.[3] Этот новый компилятор дал начало названию HotSpot, полученный из поведения программного обеспечения: как оно работает Байт-код Java, как и в случае с собственной виртуальной машиной, HotSpot постоянно анализирует производительность программы для горячие точки которые выполняются часто или неоднократно. Затем они предназначены для оптимизация, что приводит к высокопроизводительному выполнению с минимумом накладных расходов для менее критичного к производительности кода. В одном отчете JVM победила некоторых C ++ или же C код в некоторых тестах.[4]
Первоначально доступно как надстройка для Java 1.2,[5] HotSpot стал JVM Sun по умолчанию в Java 1.3.[6]
Функции
JRE (первоначально от Sun, теперь от Oracle) включает две виртуальные машины, одна из которых называется Клиент и другие Сервер. Клиентская версия настроена на быструю загрузку. Он использует интерпретацию. Версия для сервера загружается медленнее, прилагая больше усилий для создания оптимизированных JIT-компиляции для получения более высокой производительности. Обе виртуальные машины компилируют только часто выполняемые методы, используя настраиваемое пороговое значение числа вызовов, чтобы решить, какие методы компилировать.
Многоуровневая компиляция, опция, представленная в Java 7, использует как клиентский, так и серверный компиляторы в тандеме, чтобы обеспечить более быстрое время запуска, чем серверный компилятор, но аналогичную или лучшую пиковую производительность.[7] Начиная с Java 8, для серверной виртуальной машины по умолчанию используется многоуровневая компиляция.[8]
HotSpot написан на C ++. По оценкам Sun, в 2007 году он содержал примерно 250 000 строк исходного кода.[9] Hotspot обеспечивает:
- А Загрузчик классов Java
- А Байт-код Java устный переводчик
- Клиент и Сервер виртуальные машины, оптимизированные для соответствующего использования
- Несколько сборщики мусора (включая ZGC с очень малым временем паузы)[10][11]
- Набор вспомогательных библиотек времени выполнения
Флаги JVM
HotSpot поддерживает множество аргументы командной строки для вариантов исполнения виртуальной машины. Некоторые из них являются стандартными и должны быть найдены в любом соответствующем Виртуальная машина Java; другие относятся только к HotSpot и могут отсутствовать в других JVM (параметры, начинающиеся с -X или -XX, нестандартны).[12][13][14][15]
Лицензия
13 ноября 2006 г. JVM HotSpot и Комплект для разработки Java (JDK) были лицензированы под Стандартная общественная лицензия GNU (GPL) версия 2.[16] Это код, который стал частью Java 7.[17]).
Поддерживаемые платформы
Поддерживается Oracle
Как и весь Комплект для разработки Java (JDK), HotSpot поддерживается Корпорация Oracle на Windows, Linux, macOS, и Солярис. Поддерживается Набор инструкций архитектуры (ISA) IA-32, x86-64, ARMv7 VFP, ARMv8 и SPARC (Только для Solaris).[18]
Порты сторонних производителей
Порты также доступны третьими сторонами для различных других Unix операционные системы. Поддерживаются несколько различных аппаратных архитектур, включая x86, PowerPC, и SPARC (только для Solaris).
Перенос HotSpot сложен как код, хотя в основном он написан на C ++, содержит много язык ассемблера.[19] Чтобы исправить это, Чай со льдом проект разработал общий порт HotSpot устный переводчик называется точка доступа с нулевым ассемблером (или же нуль), практически без ассемблерного кода. Этот порт предназначен для легкой адаптации компонента интерпретатора HotSpot к любому Linux архитектура процессора. Кодекс точка доступа с нулевым ассемблером используется для всех не-x86 архитектура портов HotSpot (PowerPC, Itanium (IA-64 ), S390 и РУКА ) начиная с версии 1.6.[20][21][22]
Смотрите также
- Список виртуальных машин Java
- Сравнение виртуальных машин Java
- Производительность Java
- OpenJDK
- Машина да Винчи, проект прототипа расширения JVM для добавления поддержки языки динамического программирования
Рекомендации
- ^ а б c «Sun объявляет о выпуске механизма производительности Java HotSpot». Пресс-релиз. Sun Microsystems. Получено 26 марта 2013.
- ^ Услуги, хроники и новости (1997-02-19). "САН МИКРО ПОКУПАЕТ ДОЛГОСРОЧНО". SFGATE. Получено 2020-11-05.
- ^ «Клифф щелкните на языках Azul Pauseless GC, Zing, JVM». InfoQ. 2011-01-20. Получено 2016-05-10.
[...] Anamorphic был приобретен Sun, поэтому первоначальная команда была в компании под названием Anamorphic, они пришли с технологией, которая была нацелена на Smalltalk, и они перенаправили ее на Java, и вскоре после этого они наняли меня, чтобы я сделал новый JIT для своей виртуальной машины.
- ^ Льюис, Дж. П. (2004). «Производительность Java по сравнению с C ++». Архивировано из оригинал на 2020-04-24. Получено 2007-10-03.
- ^ Шенкленд, Стивен (18 февраля 1999 г.). «HotSpot наконец-то оставляет свой след». Cnet.
- ^ «Sun Microsystems выпускает самую быструю клиентскую платформу Java на сегодняшний день». Sun Microsystems. 2000-05-08. Получено 2007-10-03.
- ^ «Повышение производительности виртуальной машины Java ™ HotSpot». docs.oracle.com.
- ^ «Повышение производительности виртуальной машины Java ™ HotSpot». docs.oracle.com.
- ^ «Группа HotSpot». Sun Microsystems. 2007 г.. Получено 2007-10-03.
Существует около 1500 заголовочных и исходных файлов C / C ++, содержащих почти 250 000 строк кода.
- ^ «Главная - ЗГК». OpenJDK вики.
- ^ "Руководство по настройке сборки мусора виртуальной машины HotSpot (Java 14)". Справочный центр Oracle.
- ^ "Параметры виртуальной машины Java HotSpot". Sun Microsystems. Получено 2009-02-08.
- ^ Мокер, Джозеф Д. (28 августа 2007 г.). «Коллекция параметров JVM». Архивировано из оригинал на 2011-04-30. Получено 2009-02-08.
- ^ Максимович, Дмитрий. «Самый полный список опций -XX для Java 6 JVM». Архивировано из оригинал на 30.01.2010. Получено 2009-02-08.
- ^ Наттер, Чарльз (2009-01-29). "Мои любимые флаги JVM Hotspot". Получено 2009-02-08.
- ^ «Sun Open Sources Java Technology и выпускает исходный код под лицензией GPL версии 2 через NetBeans и сообщества Java.net». Sun Microsystems. 2006-11-13. Архивировано из оригинал на 2009-02-09. Получено 2017-05-06.
- ^ JDK7, Солнце.
- ^ «Сертифицированные системные конфигурации Oracle JDK 8 и JRE 8». Корпорация Oracle. Получено 2017-05-18.
- ^ Гэри, Бенсон (2007-11-06). "Руководство Гэри по портированию IcedTea". Архивировано из оригинал на 2012-07-12. Получено 2008-01-26.
- ^ Гэри, Бенсон (1 февраля 2008 г.). «1 февраля 2008 г.». Архивировано из оригинал на 2012-07-10. Получено 2008-02-03.
- ^ Эндрю, Хейли (31.01.2008). "Сделать нулевой ассемблер по умолчанию на ppc". Получено 2008-02-03.
- ^ Лилиан, Ангел (13 февраля 2008). "IcedTea 1.6 выпущен с нулевым ассемблером и поддержкой JNLP!". Красная шляпа. Получено 2008-02-13.
внешняя ссылка
- Официальный веб-сайт
- Список HotSpot VMOptions
- Спецификация виртуальной машины Java
- История оригинальной команды Strongtalk-HotSpot
- «Sun объявляет о выпуске Java Hotspot Performance Engine». Архивировано 18 декабря 2006 года.. Получено 27 марта, 2014.CS1 maint: BOT: статус исходного URL-адреса неизвестен (связь)
- Репозиторий разработки исходного кода HotSpot Mercurial (система контроля версий) для JDK8