有多大是一个Objective-C的iPhone应用程序与一个MonoTouch的应用程序?(How

2019-07-18 12:48发布

我使用MonoTouch的一些iPhone的发展考虑,但有效载荷的大小是一个重要因素。

对于从来没有谁对他们的iPhone之前安装单用户,什么将一个Objective-C的“Hello World”应用程序的大小相比,MonoTouch的“Hello World”的应用程序?

更具体地讲,什么是约。 要下载需要的字节数,什么是约。 所使用的字节数一旦安装?

Answer 1:

在Objective-C A “Hello World” 程序占地50 KB(全名为.app文件夹)。 随着MonoTouch的,类似的“Hello World”应用程序占据5 MB(全名为.app文件夹),这是不坏考虑它与它的垃圾收集运行时。



Answer 2:

在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现有的工具。 我开发建设我所有的MonoTouch的应用程序在Visual Studio 2010,然后测试它们在Mac上,我不认为苹果甚至会认为他们的IDE接近同行业的佼佼者。



Answer 3:

从这个问题的MonoTouch和大小可执行的 :

MonoTouch的不翻译成的OBJ-C。 它编译成.NET IL,然后编译是(以同样的方式JIT编译器会,但它的运行之前 - 因此“提前”编译器)成原生ARM代码。

所以:

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

VRS MT:

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

在3.X输出二进制文件是较大的,因为你还包括了很多的.NET Framework(当然,单声道的框架,但同样的,相同的),因此,如果您为例如,使用的System.Xml,它必须包括到输出-同样与System.dll中等等。链接是非常聪明,但输出二进制文件总是会更大

对我来说,唯一重要的事情的大小是加载时间,并压缩二进制文件的大小。 拉链二进制的“Hello World”的程序是关于2.5-3meg( 在4.x中较小有人告诉我 )对VRS OBJ-C 300K左右。 该差异也越来越少,你越增加,因为它仅包括一次system.dll中的喜欢。 加载时间MT VRS的OBJ-C,在同一时间做同样的事情,也足以接近相同。 任何一个都可能进行加载缓慢(只是做一些长期运行在您的FinishedLaunching没有把它放在另一个线程)。

回答者接着说,他觉得自己比Objective-C的更高效使用MonoTouch的。 因人而异。



文章来源: How big is an Objective-C iPhone app vs. a MonoTouch app?