代码之家  ›  专栏  ›  技术社区  ›  Lalit

flex as3:较小的变量名是否比较长的名称更快?

  •  1
  • Lalit  · 技术社区  · 14 年前

    我们正在优化FlexAS3应用程序。

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

    即。:

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

    这是真的吗?

    5 回复  |  直到 10 年前
        1
  •  8
  •   Patrick    14 年前

    不,您将获得的增益将只针对SWF的大小。

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

    可以看出(非常示意):

    常数池:

    [0] IsRegionSelected
    [1] IsRS
    

    用途:

    value at 0 = false
    value at 1 = false
    

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

    push false
    setlocal x
    
    push false
    setlocal y
    

    在哪里? x and y 寄存器int是由编译器分配的,所以如果它是 register 2 or register 4

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

        2
  •  0
  •   Anoop    14 年前

    是的。。我再说一遍。更改名称长度对您没有帮助。专注于项目渲染器、效果、状态和过渡。这些可能会扼杀你的资源。还可以检查任何嵌入图像、嵌入字体等,因为这些会增加最终SWF文件的大小并增加初始加载时间。

    喝彩,PK

        3
  •  0
  •   Thalaivar    14 年前

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

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

    稍后应该对声明的变量名进行分析。

    var g:String;
    var gang:String;
    

    两者都执行相同的操作,其中一个更易于阅读,通过您的代码的人也会解释它。

        4
  •  0
  •   Matchu    14 年前

    性能提升很小,但是如果您计划稍后再次使用此应用程序,那么您的理智就不值得了。在这之前,绝对要做任何其他的优化——如果它真的很慢,需要进行优化,那么在变量名之前,肯定还有其他的因素需要考虑。

    在使用1-2毫秒的助推器之前,尽你所能减少任何东西。

        5
  •  0
  •   Adrian Pirvulescu    14 年前

    正如Matchu所说,有一点不同,但很小。

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