代码之家  ›  专栏  ›  技术社区  ›  D'Arcy Rittich

Objective-C iPhone应用程序与单触式应用程序相比有多大?

  •  21
  • D'Arcy Rittich  · 技术社区  · 15 年前

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

    对于以前从未在iPhone上安装过Mono的用户来说,Objective-C“Hello World”应用程序与单触式“Hello World”应用程序相比有多大?

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

    3 回复  |  直到 13 年前
        1
  •  17
  •   Peter Mortensen mkoryak    13 年前

    Objective-C中的“Hello World”程序占用50_kb(整个.app文件夹)。 对于MonoTouch,类似的“Hello World”应用程序占用5 MB(whole.app文件夹),考虑到它有一个运行时,其中包含垃圾收集,这一点也不错。

        2
  •  11
  •   Peter Mortensen mkoryak    13 年前

    1.5单触式

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

    根据我的经验,他们经常会上升到10兆,论坛也画出了同样的画面。AppStore会报告解压后的大小,但会下载解压后的大小。压缩后的容量约为3兆字节,即使是在3G上,也可以。

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

    在我看来,大多数人在下载应用程序之前不会看文件大小,也不会特别在意。 3g下载的AppStore限制现在为20 MB 它完全符合单触式大小。

    要扮演魔鬼的拥护者,是的,这是许多订单大于客观C当量,可能会吓跑一些人担心占据4-10 MB的16 GB空间。但是也有时间上市,并且现有的工具可用于.NET。我发展 在Visual Studio 2010中构建我所有的单触式应用程序,然后在Mac上测试它们,我认为即使是苹果也不会认为他们的IDE接近行业领导者。

        3
  •  8
  •   user195488    13 年前

    从这个问题开始 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框架,但相同),所以如果 例如,使用system.xml时,必须将其包含到输出中- 与system.dll等相同。链接器相当智能,但输出 二进制文件总是 更大的 .

    对我来说,唯一重要的是装载时间和拉链。 二进制大小。 “Hello World”应用程序的压缩二进制文件大约为2.5-3meg。 ( 4.x中较小,我被告知 关于VRS 300 K 对于obj-c.区别 增加的越多,得到的就越少,因为它只包括 System.dll一次。mt vrs obj-c的加载时间,在 同时,也差不多。任何一个都可以 缓慢加载(只需在完成的启动中长时间运行 不用再穿上一根线)。

    回答者接着说,他觉得单触球比客观的C.Ymmv更有效率。