【发布时间】:2011-09-07 05:46:42
【问题描述】:
我喜欢 MXML,但我开始注意到它的一些缺点。我正在努力解决的主要问题是由于需要绑定,它的内存使用量更大。在下面的超级简单代码 sn-p 中,我在 Flex 4.0 上测试过
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx" minWidth="955" minHeight="600">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
[Bindable] private var xPos:Number = 20;
[Bindable] private var yPos:Number = 20;
[Bindable] private var testo:String = "hello";
[Bindable] private var colorVar:uint = 0x212122;
private const xPosConst:Number = 20;
private const yPosConst:Number = 20;
private const testoConst:String = "hello";
private const colorVarConst:uint = 0x212122;
]]>
</fx:Script>
<!-- <s:Label x="20" y="20" text="hello" color="0x212122"/>-->
<s:Label x="{xPos}" y="{yPos}" text="{testo}" color="{colorVar}"/>
<!-- <s:Label x="{xPosConst}" y="{yPosConst}" text="{testoConst}" color="{colorVarConst}"/>-->
</s:Application>
使用 (a) 幻数、(b) [可绑定] 变量和 (c) 常量来设置 mxml 标签的变量。有趣的是(至少对我而言)场景(c)占用的内存比(a)多但小于(b)-我会假设它等于两者之一,并希望它与( a) 但我想不是。
我的主要问题:有什么方法可以在不占用内存的 MXML 中设置变量?我知道我可以在 AS 中显式地执行此操作,并将 MXML 保留为裸骨结构,但想知道是否有替代路径。
第二个问题:为什么 c 中的内存使用量与 a 和 b 不同?我查看了中间代码,似乎 const 案例仍然设置了一些绑定逻辑,但没有那么多,我一直想知道为什么会这样。
谢谢!
【问题讨论】:
-
我有点好奇你是如何获得这一切的内存占用的。你能制作一张所有内存分配的图表吗?这对于科学测量会很棒:)
-
我在 Flash Builder 4.0 中使用了内存分析器。将尝试重新运行并发布值。
标签: apache-flex memory-management mxml flash