Вопрос

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

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

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

Для тех, кто заинтересован, есть записанная и размещенная в Интернете лекция о Далвик В.М. .

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

Это было полезно?

Решение

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

    Другие советы

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

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

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

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

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

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

    Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top