【问题标题】:Adobe Air Mobile Android Starling Application RAM usageAdobe Air Mobile Android Starling 应用程序 RAM 使用情况
【发布时间】:2013-11-18 06:50:05
【问题描述】:

为此,我正在使用 starling 1.3、Android 4.0.4 和 adobe air 3.7

我正在开发一个简单的应用程序,它具有几乎简单的 UI 和最少的动画。

我通过 starling.showStats = true 来衡量应用程序的性能。

在统计窗口中,我只得到了 8mb 的应用程序内存使用量。

但如果我查看 settings->application->running->myApp 然后在那个地方我得到了 55 到 61 mb 的内存使用量。

我对这种奇怪的记忆差异感到震惊。

是不是我做错了什么?

这是正常现象吗?

【问题讨论】:

    标签: android actionscript-3 air starling-framework


    【解决方案1】:

    Starling stats 使用 System.totalMemory 来衡量已用内存量。正如 Adob​​e AS3 参考所述:

    此属性不会返回 Adob​​e AIR 使用的所有内存 应用程序或由包含 Flash 的应用程序(如浏览器) 播放器内容。浏览器或操作系统可能会消耗其他 记忆。 System.privateMemory 属性反映了所有使用的内存 一个应用程序。

    因此,您的应用管理器显示的数字可能等于 System.privateMemory 将返回的数字。

    【讨论】:

    • 那么这是正常的事情吗?一个绘制次数少、动画少的简单应用程序可以在 android 上占用 55 到 61 MB 吗?
    • 视情况而定。你在渲染任何位图吗?
    • 是的,我正在渲染位图。我的抽奖次数接近 15 次。
    • 好的,很难说没有内存分析,但这里有一些可能的原因: 1. Starling HandleLostContext 属性设置为 true,因此您的所有纹理都保存在常规内存中(不是 GPU 的) . 2. 你在某处有内存泄漏。 3. AIR 运行时占用大量内存,这可能是正常现象,也可能是错误。尝试使用 Adob​​e Scout 来分析您的内存,您也可以运行空应用程序来查看它使用了多少内存并进行比较。
    【解决方案2】:

    内存使用可能来自您的位图,不会通过 Starling 的统计显示报告。

    您可以使用 Adob​​e Scout 来准确处理您的记忆故障。

    512x512 RGBA(红、绿、蓝、带 alpha)纹理的内存占用为 512 x 512 像素 x 4 字节 = 1,048,576 字节 = 1 MB(参见说明here

    这迅速增长。如果您有一个 2048x2048 的图集,则生成的内存使用量约为 16 MB。

    纹理很昂贵,而移动设备上的内存很宝贵 - 所以尽早了解这些事情是很好的,这样您就可以做出相应的计划。

    【讨论】:

    • 没有注意到问题的日期.. 但它可能对偶然发现它的人有所帮助。
    猜你喜欢
    • 2012-04-06
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多