Юпитер JVM
Финальный выпуск | 1.0.0 бета / 15 июля 2002 г. |
---|---|
Тип | Виртуальная машина Java |
Лицензия | лицензия GPL |
Веб-сайт | www |
Jupiter JVM — это с открытым исходным кодом виртуальная машина Java , которая была разработана в качестве магистерской диссертации с учетом модульности и расширяемости. Он использует сборщик мусора Boehm и GNU Classpath . Основные аспекты конструкции виртуальной машины Юпитер можно упростить следующим образом:
- Локальность памяти . Объекты размещаются в куче практически без учета локальности. Хотя этот подход может подойти для однопроцессоров или небольших SMP, он вряд ли будет хорошо работать в кластере рабочих станций, где удаленный доступ к памяти на один или два порядка медленнее, чем доступ к локальной памяти.
- Параллельная сборка мусора . Сбор мусора может занимать значительное количество времени приложения. Обычно JVM используют сборщики мусора «останови мир», где потоки программы останавливаются во время сборки мусора. Этот подход не будет работать для большого количества процессоров по двум причинам. Во-первых, стоимость «остановки мира» значительно выше, когда количество процессоров велико. Во-вторых, использование одного потока для сбора мусора приводит к неприемлемо большой последовательной доле для любого приложения.
- Модель согласованности памяти . Для достижения масштабируемой производительности на многих процессорах важно использовать «расслабленную» модель памяти Java . В настоящее время ни одна JVM не реализует JMM добросовестно, а многие реализуют его неправильно, что приводит к отсутствию согласованности и потере возможностей оптимизации. Спецификация JMM также была пересмотрена в 2007 году.
- Эффективные потоки и синхронизация . Для многих процессоров крайне важно обеспечить эффективную поддержку потоков и механизмы синхронизации, которые хорошо масштабируются.