Монодроид медленнее? - PullRequest
       1

Монодроид медленнее?

6 голосов
/ 24 сентября 2011

Я слышал, что программное обеспечение для Android может быть разработано с использованием C #.(монодроид)

Но когда я исследовал его, кто-то сказал, что он будет работать медленнее.

Что вы думаете?Это реально?Эффективно ли использование C #?

1 Ответ

18 голосов
/ 25 сентября 2011

Мы не знаем.

На полном серьезе было бы очень удобно, если бы кто-то мог портировать приложение Android Linpack на Mono для Android, чтобы мы могли получить сравнение производительности между ними.

Вот что я делаю знаю:

  • В настоящее время при первой загрузке приложения на G1 накладные расходы на запуск составляют ~ 3 с (пробег зависит от аппаратного обеспечения). Это связано с инициализацией среды выполнения Mono и загрузкой ссылочных сборок. Мы хотим улучшить это в будущем.
  • Mono и Mono для Android, JIT все . Dalvik, между тем, имеет JIT кеш переменного размера (в настоящее время 1 МБ на ARMv7) и интерпретатор, поэтому в зависимости от вашего приложения возможно (вероятно), что не все будет JITed.
  • Mono для Android использует JNI для вызова кода Android / Java.

Тогда есть сравнение производительности koush между Mono и Dalvik в 2009 . Это предшествует Dalvik JIT, но на идентичном оборудовании Mono был порка Dalvik.

Так, что это все значит? Я понятия не имею. (Опять же, порт Linpack для Mono для Android был бы замечательным! подсказка, толчок )

Тем не менее, есть несколько рекомендаций по производительности:

  1. Использование заставки во время запуска приложения. Это обеспечивает немедленную обратную связь во время запуска приложения, о чем беспокоится большинство пользователей.
  2. Если это вообще возможно, минимизировать переходы между моно и кодом Java. JNI никогда не выиграет медалей за производительность, поэтому, если вы можете делать больше кода в Mono без промежуточных вызовов методов Java, сделайте это.
  3. Минимизируйте количество экземпляров Java.Lang.Object, которые поддерживаются одновременно. Перекрестные виртуальные ссылки GC могут вызвать проблемы с производительностью.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...