Objective-C iPhone应用程序与MonoTouch应用程序相比有多大?

时间:2009-09-18 14:08:36

标签: iphone objective-c mono xamarin.ios

我正在考虑将MonoTouch用于iPhone开发,但有效载荷大小是一个重要因素。

对于之前从未在iPhone上安装过Mono的用户,将Objective-C“Hello World”应用程序的大小与MonoTouch“Hello World”应用程序进行比较会是什么?

更具体地说,约为什么?需要下载的字节数,大约是多少。安装后使用的字节数?

3 个答案:

答案 0 :(得分:17)

Objective-C中的“Hello world”程序占用50 KB(整个.app文件夹)。 使用MonoTouch,一个类似的“Hello World”应用程序占用5 MB(整个.app文件夹),考虑到它有一个带有垃圾收集的运行时,这一点都不错。

答案 1 :(得分:11)

在1.5 Monotouch中

发布版本 - 使用分发许可证构建的应用程序 - 除了默认项目设置外,只有5 MB。其中4.3 MB是二进制可执行文件。

根据我的经验,它们通常会增加到10 MB,论坛也会画出相同的图片。 appstore报告解压缩的大小,但是它们是压缩下载的。拉链大约3 MB,即使在3G上也没问题。

http://i40.tinypic.com/2jadrpd.png

在我看来,大多数人在下载应用程序之前不会查看文件大小,也不会特别小心。 3G下载的appstore限制现在为20 MB ,这完全在MonoTouch大小范围内。

扮演魔鬼的拥护者,是的,它比Objective-C等价物大许多订单,可能会吓跑一些担心占用16 GB空间4-10 MB的人。但是,还有上市时间和现有的.NET工具。我开发在Visual Studio 2010中构建我的所有MonoTouch应用程序,然后在Mac上进行测试,我认为即便是苹果公司也认为他们的IDE与行业领导者非常接近。

答案 2 :(得分:8)

来自MonoTouch and Size of Executables上的这个问题:

  

MonoTouch不会转换为Obj-c。然后它编译成.NET IL   编译(以与JIT编译器相同的方式编译,但在它之前)   运行 - 因此“提前”编译器)到本机ARM代码。

     

这样:

     

Obj-C - > GCC(或LLVM) - > ARM代码

     

vrs MT:

     

C# - > IL - > (AOT编译器) - > ARM代码

     

3.x中的输出二进制文件较大,因为您还包含一个   很多 .NET框架(好吧,Mono Framework,但是相同),所以如果   你,例如,使用System.Xml,它必须将其包含在输出中 -   与System.dll等相同。链接器非常智能,但输出   二进制文件总是更大

     

对我来说,唯一重要的是加载时间和拉链   二进制大小。 “hello world”应用程序的压缩二进制文件大约是2.5-3meg   ( 4.x我被告知)vrs关于 300k 的obj-c。区别   你添加的越多越少,因为它只包括喜欢的东西   system.dll一次。加载MT vrs Obj-c的时间,做同样的事情   同时,也足够接近相同。任何一个都可以做到   缓慢加载(只需在FinishedLaunching中做一些长时间运行   没有把它放在另一个线程上。)

回答者继续说他觉得MonoTouch比Objective-C更有效率。 YMMV。