【问题标题】:Performance suffers when including lots of images in the app bundle在应用程序包中包含大量图像时性能会受到影响
【发布时间】:2012-05-22 15:09:16
【问题描述】:

我正在制作一个包含大约 4000 张图像的应用程序。这需要很长时间来编译和运行,因为捆绑包中有太多图像。有没有什么方法可以加快速度,比如编译静态库或动态库,或者别的什么?

【问题讨论】:

    标签: ios xcode performance compilation


    【解决方案1】:

    实际上需要这么长时间才能在运行之前在设备上安装这么大的应用程序。编译时间不应受到应用程序包中有多少资源的影响。真的没有办法解决它,除非你完全改变你的设计并将图像托管在远程服务器上,我猜这违背了目的。

    【讨论】:

    • 嗨@Matt谢谢,当我在xcode中运行以证明我的iphone中的应用程序需要很长时间才能加载但在我的应用程序中加载时,加载缓慢是在启动应用程序之前正常运行更快,但是如果我进行一些更改或再次证明以在 xcode 中运行,这需要很长时间才能再次运行,是否有任何方法可以预编译所有图像或更多内容以使 xcode 运行得更快?
    • @NTTake,每次您在 Xcode 中更改源代码时,都需要重新编译应用程序,并在设备上重新安装。编译速度不是问题。瓶颈在于重新安装应用程序,因为它涉及将 4000 张图像从 Xcode 复制到您的设备。无论您使用静态库做什么,这些图像都必须以某种方式从 Xcode 传输到设备。如前所述,在构建和运行时减少启动时间的唯一方法是不将图像与应用程序捆绑在一起,而是在启动后从远程服务器加载它们。
    • 压缩应用程序也可能需要一段时间——最终的应用程序包实际上只是一个包含所有文件(可执行文件、plist、图像、其他数据文件、等)在其中,压缩大量数据需要一段时间。因此,您拥有的数据越多,归档+传输到设备的组合就会越慢。
    【解决方案2】:

    一种解决方案是不使用该应用构建图像。只需在没有任何媒体的情况下构建您的应用程序,然后首先从初始屏幕开始下载所有媒体。

    【讨论】:

      【解决方案3】:

      在某些情况下,您可能会考虑如何以编程方式完成绘图。

      您当然不希望二进制文件中的所有这些图像(好吧,如果它们每个只有几个像素,那也不是问题)。

      您可能会考虑将 pngcrushed 图像的整体二进制文件作为数据读取 - 按需逐个图像,就像您处理图像文件一样。这将很少实施。当然,这不会显着缩短传输时间,但可以减少 pngcrushing 和其他资源处理步骤所花费的时间。

      【讨论】:

        【解决方案4】:

        如何以及何时加载图像?我可能错了,但我认为编译到包中的文件数量不应该对加载时间产生太大影响。你在启动时加载它们吗?

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2010-11-28
          • 1970-01-01
          • 1970-01-01
          • 2012-06-05
          • 1970-01-01
          • 1970-01-01
          • 2016-12-12
          相关资源
          最近更新 更多