2013-03-22 41 views
0

从性能角度来看,哪个功能定义更好/更快?创建一个对象并为其添加功能,或者逐个创建功能?哪种方式更适合在AS3中定义函数?

var myCollection:Object = { 
    first: function(variable:int):void { 

    }, 
    second: function(variable:int):void { 

    } 
} 

myCollection.first(1); 

private function first(variable:int):void { 

} 

private function second(variable:int):void { 

} 

first(1); 
+0

其次是更快,因为它没有额外的费用,不得不寻找一个对象来找到函数。 – BadFeelingAboutThis 2013-03-22 23:40:25

回答

2

后者。性能受到的影响可以忽略不计,除非是大规模的,但第二个将稍微快一点。

基本上归结为范围。为了从一个对象中获得一个函数,你必须在类的范围内找到对象的内存引用,然后在该对象的范围内找到对该函数的内存引用。第二,你只需要在类的范围内找到Function对象(所有函数都是对象)内存引用。

第二种方法删除了中间人,基本上,在识别正确的功能。现在,每一个都会在不到一毫秒的时间内找到。就你而言,这是瞬间的。但是,如果你连续这样做了10万次?是的,你可能会在课堂上宣布一些表现提升。

作为一个附加说明,您还将第一个对象添加到内存中。加入足够的这些(再次,必须在大规模规模),你就会看到刚刚从存储在存储器中

你也应该看看实用性和可读性多余的对象放缓,虽然。在对象中声明意味着一旦实例化类,函数就不可用,因此必须小心不要在对象实例化之前调用该函数。此外,你会失去代码暗示,这不是编写代码的常用方式(意味着另一个开发人员,或者即使是在一年后你自己也不需要知道如何在没有任何帮助的情况下从标准或标准中获得帮助他们已经学会了,他们之前可以做任何修改)

相关问题