¿Qué tan grande es una aplicación de iPhone Objective-C frente a una aplicación MonoTouch?

StackOverflow https://stackoverflow.com/questions/1444777

Pregunta

Estoy considerando usar MonoTouch para algunos desarrollos de iPhone, pero el tamaño de la carga útil es un factor importante.

Para un usuario que nunca antes ha instalado Mono en su iPhone, ¿cuál sería el tamaño de un Objective-C " Hello World " aplicación se compara con un MonoTouch " Hello World " aplicación?

Más específicamente, ¿cuál es el aprox. número de bytes que deben descargarse, y cuál es el aprox. número de bytes utilizados una vez instalado?

¿Fue útil?

Solución

A " Hola mundo " El programa en Objective-C ocupa 50 & nbsp; KB (carpeta completa .app). Con MonoTouch, un "Hello World" similar la aplicación ocupa 5 & nbsp; MB (carpeta completa .app), lo que no está nada mal teniendo en cuenta que tiene un tiempo de ejecución con recolección de basura.

Otros consejos

En 1.5 Monotouch

Una versión de lanzamiento, que es una aplicación creada con una licencia de distribución, y con nada más que la configuración predeterminada del proyecto, es 5 & nbsp; MB. De esos 4.3 & nbsp; MB es el ejecutable binario.

A menudo aumentan hasta 10 & nbsp; MB en mi experiencia, y los foros pintan la misma imagen. La tienda de aplicaciones informa el tamaño descomprimido, sin embargo, se descargan comprimidos. Comprimido es alrededor de 3 & nbsp; MB que, incluso en un 3G, está bien.

En mi opinión, la mayoría de las personas no mirarán el tamaño del archivo antes de descargar una aplicación, ni se preocuparán particularmente. El límite de la tienda de aplicaciones para descargas 3G ahora es de 20 & nbsp; MB que está dentro del tamaño de MonoTouch.

Para jugar al abogado del diablo, sí, son muchas órdenes más grandes que el equivalente de Objective-C y podrían asustar a algunas personas preocupadas por ocupar 4-10 & nbsp; MB más de su espacio de 16 & nbsp; GB. Sin embargo, también hay tiempo para comercializar y las herramientas existentes disponibles para .NET. Desarrollo y construyo todas mis aplicaciones MonoTouch en Visual Studio 2010 y luego las pruebo en Mac, y no creo que incluso Apple argumentara que su IDE está cerca del líder de la industria.

De esta pregunta en MonoTouch y tamaño de ejecutables :

  

MonoTouch no se traduce a Obj-c. Compila a .NET IL, luego   compila eso (de la misma manera que lo haría un compilador JIT, pero antes es   ejecutar - por lo tanto " antes de tiempo " compilador) en código ARM nativo.

     

entonces:

     

Obj-C - > GCC (o LLVM) - > Código ARM

     

vrs MT:

     

C # - > IL - > (Compilador AOT) - > Código ARM

     

Los binarios de salida en 3.x son más grandes porque también incluye un   gran parte del .NET framework (bueno, Mono Framework, pero igual), así que si   usted, por ejemplo, usa System.Xml, tiene que incluir eso en la salida -   lo mismo con System.dll, etc. El enlazador es bastante inteligente, pero el resultado   los binarios siempre serán más grandes .

     

Para mí, lo único que importa es el tiempo de carga y la cremallera   tamaño binario Binario comprimido para un "hola mundo" la aplicación mide aproximadamente 2.5-3meg   ( más pequeño en 4.x me dicen ) vrs sobre 300k para obj-c. La diferencia   obtiene cada vez menos cuanto más agrega, ya que solo incluye los gustos de   system.dll una vez. Tiempo de carga para MT vrs Obj-c, haciendo lo mismo en   Al mismo tiempo, está lo suficientemente cerca de lo mismo. Cualquiera puede ser hecho para   cargue lentamente (solo haga algo largo en su FinishedLaunching   sin ponerlo en otro hilo).

El respondedor continúa diciendo que siente que es más productivo con MonoTouch que Objective-C. YMMV.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top