Apache flex 在actionscript中,什么是更快的普通对象或强类型对象?
也是如此 比我有一个像User这样的值对象要慢Apache flex 在actionscript中,什么是更快的普通对象或强类型对象?,apache-flex,actionscript,Apache Flex,Actionscript,也是如此 比我有一个像User这样的值对象要慢 public var user:Object = {}; user["firstName"] = "Bill"; user["lastName"] = "Cosby"; 与任何速度优势相比,更重要的是,强类型为您提供了编译时类型检查,这样您就不会键入属性名称-节省了大量开发人员时间,这比时钟周期要昂贵得多 虽然是的,但静态输入也有速度优势 var user:User = new User(); user.firstName = "Bill";
public var user:Object = {};
user["firstName"] = "Bill";
user["lastName"] = "Cosby";
与任何速度优势相比,更重要的是,强类型为您提供了编译时类型检查,这样您就不会键入属性名称-节省了大量开发人员时间,这比时钟周期要昂贵得多 虽然是的,但静态输入也有速度优势
var user:User = new User();
user.firstName = "Bill";
user.lastName = "Cosby";
结论:键入的比未键入的快
public function speedTest():void
{
var typedObjects:Array = [];
var dynamicObjects:Array = [];
var typedObject:User;
var dynamicObject:Object;
var i:int = 0;
var n:int = 10000;
for (i; i < n; i++)
{
dynamicObject = {};
dynamicObjects.push(dynamicObject);
typedObject = new User();
typedObjects.push(typedObject);
}
// typed
var time:int = getTimer();
i = 0;
n = 10000;
for (i; i < n; i++)
{
typedObject = typedObjects[i];
typedObject.firstName = "Bill";
typedObject.lastName = "Cosby";
}
var end:int = getTimer() - time;
trace("TypedObject Time: ", end/1000, "sec");
// untyped
time = getTimer();
i = 0;
n = 10000;
for (i; i < n; i++)
{
dynamicObject = dynamicObjects[i];
dynamicObject["firstName"] = "Bill";
dynamicObject["lastName"] = "Cosby";
}
end = getTimer() - time;
trace("DynamicObject Time: ", end/1000, "sec");
}
TypedObject Time: 0.002 sec
DynamicObject Time: 0.007 sec
TypedObject Time: 0.002 sec
DynamicObject Time: 0.006 sec
TypedObject Time: 0.002 sec
DynamicObject Time: 0.006 sec