Android кастрирует технологию ARM Jazelle?

Мы делаем управление исходным кодом все наш понижать качество созданных объектов. И только сохранить разработчиков честными (потому что можно создать объекты без них находиться в Управлении исходным кодом), наши dbas периодически ищут что-либо не в управлении исходным кодом и если они находят что-нибудь, они отбрасывают его, не спрашивая, ли это в порядке.

32
задан Pedantic 27 December 2013 в 05:56
поделиться

3 ответа

Да, Dalvik делает Jazelle бесполезным. Единственный вопрос: была ли Джазель полезной для начала или это 90% маркетинговая шумиха? Хороший компилятор JIT или AOT (опережающий время) имеет тенденцию давать гораздо лучшую производительность, чем попытки использовать специализированные инструкции. Подход Dalvik на основе регистров может быть быстрее, чем традиционный интерпретатор байт-кода Java, но если разница между интерпретатором и JIT незначительна. Надеюсь, в одной из следующих версий Android будет JIT.

Чтобы написать хорошую виртуальную машину с современными сборщиками мусора и оптимизаторами, требуется ~ 5-10 лет. Sun (и Microsoft) потратили эти годы. У Google нет. Надеюсь, они продолжат инвестировать в него, чтобы в один прекрасный день Java-код Android не стал на 90% медленнее, чем должен быть.

18
ответ дан 27 November 2019 в 21:13
поделиться

Википедия: виртуальная машина Dalvik :

В отличие от большинства виртуальных машин и настоящих виртуальных машин Java, которые являются стековыми машинами, виртуальная машина Dalvik основана на регистрах

Будучи оптимизированным для малых требований к памяти, Dalvik обладает некоторыми специфическими характеристиками, которые отличают его от других стандартных виртуальных машин:

  • Виртуальная машина была уменьшена, чтобы использовать меньше места.
  • У Dalvik нет своевременного компилятора. .
  • Пул констант был изменен для использования только 32-битных индексов для упрощения интерпретатора.
  • Он использует свой собственный байт-код, а не байт-код Java.

Кроме того, Dalvik был разработан таким образом, чтобы устройство могло эффективно запускать несколько экземпляров виртуальной машины.

Изменить : см. Википедию: Open Handset Alliance . В число учредителей входят Intel, Motorola, Qualcomm и Texas Instruments. ARM присоединилась к нему годом позже, в декабре 2008 г. Таким образом, я полагаю, что этим компаниям не имело смысла полагаться на проприетарную технологию, которая тогда еще не была членом, когда целью было создать конкурента iPhone / Blackberry с открытым кодом.

5
ответ дан 27 November 2019 в 21:13
поделиться

На самом деле у меня сложилось впечатление, что Dalvik был предназначен больше для экономии места, чем для эффективности исполнения. Также из Википедии:

Несжатый .dex файл обычно на несколько процентов меньше по размеру, чем сжатый .jar (архив Java), полученный из тех же файлов .class.

В то время как текущие телефоны могут использовать ARM с поддержкой Jazelle, это не обязательно верно в будущем.

Также из Википедии (предупреждение: слухи):

Опубликованные спецификации очень неполны, их достаточно только для написания операционной системы. код, который может поддерживать JVM, использующий Jazelle. Заявленное намерение состоит в том, что только программное обеспечение JVM должно (или может) зависеть от деталей аппаратного интерфейса. Эта тесная привязка способствует совместному развитию оборудования и JVM, не затрагивая другое программное обеспечение. По сути, это дает ARM Holdings значительный контроль над тем, какие JVM могут использовать Jazelle. Это также не позволяет JVM с открытым исходным кодом использовать Jazelle.

Когда они добавят JITter в Dalvik, все это станет спорным вопросом.

2
ответ дан 27 November 2019 в 21:13
поделиться
Другие вопросы по тегам:

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