tutorial objective mechdome convertir java iphone objective-c mono xamarin.ios

mechdome - java a objective c



Rendimiento MonoTouch vs. Objective-C/Java (1)

Primero, una aclaración: en Android, el código no es ejecutado por Java runtime, sino por Dalvik (escrito desde cero por Google). Por lo tanto, el rendimiento de Java VM no tiene relevancia para esta pregunta.

Con esto en mente: la mayoría de los programas en Android no ejecutan código nativo, sino que se ejecutan en Dalvik VM (que ejecuta el bytecode traducido de Java). El Mono JIT se ha comparado con él antes y se ha encontrado constantemente más rápido (consulte, por ejemplo, http://www.koushikdutta.com/2009/01/dalvik-vs-mono.html ).

En iOS, MonoTouch tiene que precompilar el código en una aplicación nativa antes de que pueda instalarse en un dispositivo Apple (debido a restricciones de licencia, que son aplicadas por el sistema operativo). Dicho esto, tanto el compilador de Objective C como la compilación de Ahead Of Time de Mono usan el mismo backend de LLVM para generar y optimizar el código binario, por lo que los resultados que obtendrá serán casi idénticos (con cierta sobrecarga de memoria para Mono).

Recuerde una cita importante de Donald Knuth: "La optimización prematura es la raíz de todo mal". Escriba su código teniendo en cuenta el rendimiento, pero recuerde que la capacidad de mantenimiento es más importante. La optimización debe hacerse solo cuando sea necesario (porque generalmente el compilador hará un trabajo mucho mejor que usted).

Estoy en el proceso de desarrollar un motor de juego multiplataforma y estoy usando MonoTouch para cubrir Android y iPhone. Estoy realmente interesado en el aspecto de rendimiento del uso de MonoTouch para desarrollo de iOS y Android. ¿Alguien sabe qué efecto de rendimiento tendrá MonoTouch sobre el uso de Java u Objective-C para sus plataformas relevantes? Pregunto a este personaje específico desde la perspectiva de los desarrolladores de juegos, así que cosas como dibujar código me preocupan. Por lo que he visto, las aplicaciones mono funcionan bien, pero digamos que has hecho un juego en el nivel de Angry Birds (trabajo de arte, sonido, procesamiento de la física), ¿correría lo suficientemente bien a través de mono que no te pondrían en un desventaja sobre el uso del idioma nativo de la plataforma?