Различия между реализациями JVM

Я думаю, что это касается вашего положения трекбара в коде. Поскольку вы работаете с видеопотоком, я думаю, что его местоположение может быть проблемой. Лучше поделиться всем кодом.

18
задан haylem 3 March 2012 в 02:00
поделиться

8 ответов

Реализации JVM могут отличаться тем, как они реализуют JIT-компиляцию, оптимизацию, сборку мусора, поддерживаемые платформы, поддерживаемую версию Java и т. д. Все они должны соответствовать набору функций и поведения, чтобы он правильно выполнял ваши байт-коды Java.

Как вы указали, основное различие заключается в лицензировании. Другие нетехнические различия, как правило, заключаются в вариантах бесплатной / платной поддержки, интеграции с другими технологиями (обычно серверами J2EE) и доступом к исходному коду.

Примечание. Хотя сервер J2EE работает на JVM, некоторые серверы имеют встроенные инструменты для мониторинга, анализа и настройки производительности JVM.

Что касается технических различий, то с годами они стали менее значительными. Давным-давно IBM и JRockit JVM ' У них была намного лучшая производительность по сравнению с эталонной реализацией Sun. Это произошло из-за значительных различий в типах оптимизаций во время выполнения, различий в сборке мусора и различий в собственном коде (и в том, сколько нативного кода используют различные классы). Эти различия в производительности уже не так значительны.

Некоторые JVM также включают или интегрируются с инструментами диагностики и мониторинга. JRockit включает в себя набор инструментов для мониторинга вашей производительности JVM. Sun предоставляет различные инструменты на основе JMX с перекрывающимися функциями, чтобы сделать то же самое. IBM Websphere когда-то включал подобный набор инструментов для всего своего сервера приложений J2EE (не уверен, что они все еще делают, но я предполагаю, что это все еще верно) ...

Некоторые из JVM с открытым исходным кодом ' Как правило, производительность немного медленнее, потому что они были переработаны с нуля. Таким образом, у них есть немного больше догоняющих, чтобы сделать. Последнее, что я проверял около 2 лет назад, Blackdown был значительно медленнее (1,5x-2x?), Чем Sun JVM. Он также немного отставал от поддерживаемых версий Java.

18
ответ дан 30 November 2019 в 07:28
поделиться

Стирание типа является функцией компилятора и, как таковая, не зависит от JVM.

12
ответ дан 30 November 2019 в 07:28
поделиться

JIT-компиляция - это то, чего нет у некоторых JVM.

1
ответ дан 30 November 2019 в 07:28
поделиться

Если JVM утверждает, что она является Java, она должна передать TCK, обеспечивая большую функциональность.

различия заключаются в неосновных местах, таких как сборка мусора, jconsole / visualvm в Sun JVM, предварительная компиляция и т. д.


пояснение: TCK - это набор тестов, который виртуальная машина должна пройти, чтобы быть официально совместимой с Java.

1
ответ дан 30 November 2019 в 07:28
поделиться

Такие вещи, как стирание типов, выполняются компилятором для обратной совместимости со старыми JVM. Большинство JVM должны поддерживать все необходимые функции, но некоторые могут быть более оптимизированы, чем другие. Я предполагаю, что Sun JVM, вероятно, самая быстрая.

1
ответ дан 30 November 2019 в 07:28
поделиться

Оптимизация вызовов в хвосте пока не поддерживается Java. Джон Роуз возглавляет усилия по включению этого в будущий выпуск и описал подход и некоторые связанные с этим проблемы .

1
ответ дан 30 November 2019 в 07:28
поделиться

Еще одно различие между JVM - это поведение недокументированного API. (например, com.sun.xxx) Например, JVM Sun и JVM IBM немного различаются по поведению при обработке сигналов. (В некоторых случаях JVM IBM не позволяет приложению перехватывать сигнал "INT".)

1
ответ дан 30 November 2019 в 07:28
поделиться

JVM похожа на виртуальную машину, которая загружает класс и вариатор байт-кода, выполняет код. в то время как интерфейс программирования Applocaion представляет собой набор пакетов. и Пакеты представляют собой набор классов. Программа Java выполняется там, где установлена ​​и работает JVM.

1
ответ дан 30 November 2019 в 07:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: