什么是动作脚本中更快的普通对象或强类型对象? [英] What is faster plain objects or strongly typed objects in actionscript?
本文介绍了什么是动作脚本中更快的普通对象或强类型对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
也是
public var user:Object = {};
user["firstName"] = "Bill";
user["lastName"] = "Cosby";
比如果我有像 User 这样的值对象要慢?
slower than if I have a value object like User?
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 (User
) 大约比 UntypedObject ({}
) 快 3-3.5 倍,但在日复一日.试用 Grant Skinner 的性能测试工具 以运行更好/更高级测试:).
Simple speed test shows that TypedObject (User
) is roughly 3-3.5x faster than UntypedObject ({}
), but it's nothing you'd ever notice in the day-to-day. Try out Grant Skinner's Performance Test Harness to run some better/advanced tests :).
3 次简单的试运行:
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
结论:Typed 比 Untyped 快.
Verdict: Typed is faster than Untyped.
这篇关于什么是动作脚本中更快的普通对象或强类型对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文