【问题标题】:Starling AS3: A lot of textures, memory warning iOSStarling AS3:大量纹理,内存警告 iOS
【发布时间】:2013-11-25 14:40:14
【问题描述】:

我在 Starling 中使用 AssetManager 类加载大量纹理,大约 600-700 个 png 文件。启动时未加载所有文件,我使用多个 AssetManager 来保存图像。开始时,它会向 3 个不同的管理器加载大约 70 张图像,并且在加载时,我在 iOS 上收到了一些内存警告。

  • iPhone appName[644]:收到内存警告。
  • iPhone appName[644]:应用程序收到来自系统的内存警告。
  • iPhone SpringBoard[74]:收到内存警告。
  • iPhone MobilePhone[199]:收到内存警告。

我尝试同时加载它们,并尝试在另一个加载完成时开始每个加载。我也试过 System.gc();和 System.pauseForGCIfCollectionImminent(0.1);在每次加载之间,这解决了 iPhone 5 (7.0.4) 上的问题,但没有解决 iPhone 3gs (6.1.3) 上的问题。

八哥版本:1.4.1

有人知道如何解决这个问题吗?

【问题讨论】:

    标签: ios actionscript-3 png starling-framework didreceivememorywarning


    【解决方案1】:

    通常从移动开发的角度来看,从来没有“一刀切”的解决方案。有许多不同的屏幕尺寸和硬件配置。为了解决这个问题,许多开发人员会生成 - 如前所述,Sprite Sheets。使用这种方法,应用程序只需要加载一个图像,而在你的情况下是数百个。图像加载器连接到内存地址以启动纹理上传到 GPU 需要相当长的时间 - 我什至无法想象对于这么多资源它的速度有多慢。

    这个texture packer 非常出色,并且还有助于许多开发人员合并的另一个功能。资产密度。在 iPhone 3G 中,开发人员将加载一组为较小屏幕尺寸开发的精灵表,而为平板电脑或一些高端设备加载具有两倍大小资产的较大精灵表。这种方法不仅可以解决您的内存问题,还可以使您的应用程序在更广泛的设备上看起来更好。

    这里是 Starling Wiki multi-resolution development 的链接。

    在您可以对项目做出的“更好”的所有更改中,上面提到的那些在列表中排名靠前。

    【讨论】:

    • 是的,感谢您的帮助!我已经创建了精灵表,并且效果更好。我还重建了声音的加载。从一开始我就同时加载了所有的声音。但是在需要它们之前加载它们可以节省大量内存。
    【解决方案2】:

    您不应加载 600-700 张图片。即使它们成功加载,您也会遇到很多性能问题。相反,请使用地图集/精灵表。

    http://wiki.starling-framework.org/manual/textures_and_images

    对于更优化的工作,使用 ATF 纹理代替 png。

    http://wiki.starling-framework.org/manual/atf_textures

    【讨论】:

    • 是的,我已经弄清楚了,但我现在只用两个 AssetMangagers 进行测试,31 个 png,所有图像的幂都是 2,并且内存警告仍然显示在 iPhone 3GS (6.1 .3).
    • @Erik 好吧,手机,尤其是旧手机,内存容量有限,您可能会超过它。我建议您尝试使用 ATF 纹理,看看效果如何......
    【解决方案3】:

    如果您针对您的应用运行 XCode Instruments,您将看到设备的总负载,这是决定您收到内存警告频率的真实指标。

    如果您的总负载 % 高于 80%,预计会出现大量持续的内存警告。 GC 每次都会尝试运行,导致帧率急剧下降。

    这有一个错误,Adobe 正在努力解决这个问题,但主要的解决方案是简单地使用更少的内存。分辨率较低的设备的缩小纹理等...

    https://bugbase.adobe.com/index.cfm?event=bug&id=3649713

    【讨论】:

      猜你喜欢
      • 2014-12-15
      • 2014-01-05
      • 2012-03-04
      • 1970-01-01
      • 1970-01-01
      • 2014-12-24
      • 1970-01-01
      • 2012-06-20
      相关资源
      最近更新 更多