Flex AS3:较小的变量名称比较长的名称更快吗?

时间:2010-05-21 11:44:25

标签: flex actionscript-3 optimization naming-conventions

我们正在优化Flex AS3应用程序。

我的一位团队成员建议我们将变量名称长度缩小以优化应用程序性能。

即:

var IsRegionSelected:Boolean = false; //Slower
var IsRS:Boolean = false; //faster

这是真的吗?

5 个答案:

答案 0 :(得分:8)

不,您将获得的收益仅为swf的大小。

将字符串放入常量池中,引用此String的指令将使用索引。

可以看作(非常示意性):

常量池:

[0] IsRegionSelected
[1] IsRS

用法:

value at 0 = false
value at 1 = false

您的代码可能会被翻译为(对于本地变量):

push false
setlocal x

push false
setlocal y

其中x and y是由编译器注册的int int,所以如果它是register 2 or register 4

则没有区别

有关详细信息,请阅读avm specification

答案 1 :(得分:0)

性能提升非常小,但如果您打算稍后再次使用此应用程序,则不值得您理解。在此之前绝对做任何其他优化 - 如果它真的足够慢以至于需要进行优化,那么在变量名称之前肯定还需要先处理其他因素。

在采用1-2毫秒的提升之前,你可以做任何其他事情。

答案 2 :(得分:0)

是的,我是第二个。更改名称长度不会帮助你。专注于项目渲染器,效果,状态和过渡。那些可能会杀死你的资源。还要检查任何嵌入图像,嵌入字体等,因为这会增加你的最终swf文件大小并增加初始加载时间。

欢呼,PK

答案 3 :(得分:0)

我不这么认为,使用变量名的方式确实比它的长度重要。

好的代码应该是一致的。这是否意味着为变量和函数的名称设置规则,采用标准方法,或者只是确保所有代码都以相同的方式缩进,一致性使您的代码更容易被其他人阅读。

应该稍后解释一下你声明的变量名是什么。

var g:String;
var gang:String;

两者都执行相同的操作,一个是更可读的地方,有人通过你的代码也会解释它。

答案 4 :(得分:0)

正如Matchu所说,存在差异,但只有一小部分。

您应该考虑为变量分配有意义的ID,而不是仅仅使用没有意义的简单字符。