Подтвердить что ты не робот

Как бы вы улучшили Дальвика? Виртуальная машина Android

В настоящее время я пишу документ на платформе Android. После некоторого исследования, ясно, что Dalvik имеет возможности для улучшения. Мне было интересно, как вы думаете, как наилучшим образом использовать время разработчика с этой целью?

Компиляция JIT кажется большой, но потом я также слышал, что это будет ограниченным использованием на такой машине с низким ресурсом. Кто-нибудь имеет ресурс или данные, которые поддерживают это?

Есть ли другие варианты, которые следует учитывать? Помимо разработки надежного набора для разработки, чтобы обойти виртуальную машину.

Для тех, кто заинтересован, есть лекция, которая была записана и размещена в Интернете относительно Dalvik VM.

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

4b9b3361

Ответ 1

  • Лучшая сборка мусора: уплотнение как минимум (для устранения проблем с фрагментацией памяти, испытываемых сегодня), в идеале менее интенсивный процессор при выполнении самой коллекции (чтобы уменьшить жалобы "мои игровые кадры" )
  • JIT, как вы цитируете
  • Достаточно документации, которая в сочетании с NDK, кто-то достаточно сумасшедший, мог бы скомпилировать байт-код Dalvik в собственный код для опции компиляции AOT
  • Сделайте его отделимым от самого Android, так что другие проекты могут экспериментировать с ним, а вклад сообщества может появиться в большем количестве и в более быстром клипе

Я уверен, что могу придумать другие идеи, если они вам понадобятся.

Ответ 2

  • JIT

    . Материал о нем не помогает - это дерьмо. Вы можете быть более избирательным относительно того, какой код вы используете JIT, но с 1/10 производительности собственного кода всегда будет ограничивать

  • Достойный GC. Современные коллекционеры мусора не имеют больших заиканий.

  • Улучшенный анализ кода. Есть много случаев, когда ассигнования /frees не нужно делать, блокировки удерживаются и т.д. Это позволяет вам писать чистый код, а не делать оптимизации, что машина лучше на

В теории большинство языков более высокого уровня (Java, Javascript, python,...) должны быть в пределах 20% от производительности собственного кода для большинства случаев. Но для этого требуется, чтобы поставщик платформы потратил 100 с + годы разработчика. Sun Java становится все лучше. Они также работали над этим в течение 10 лет.

Ответ 3

Одной из основных проблем с Dalvik является производительность, которая ужасная, я слышал, но одна из вещей, которые мне больше всего нравятся, - это добавление большего количества языков.

У JVM были проекты сообщества, на которых запущены Python и Ruby на платформе, и даже специальные языки, такие как Scala, Groovy и Closure, разработанные для него. Было бы неплохо увидеть их (и/или других) на платформе Dalvik. Sun также работает над машиной Da Vinci, динамическим расширением набора JVM, что указывает на существенный сдвиг от философии "одного языка, подходящей ко всем", за которой последние 15 лет следовали Sun.