什么是更快的普通物体或动作强类型的对象? [英] What is faster plain objects or strongly typed objects in actionscript?
本文介绍了什么是更快的普通物体或动作强类型的对象?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
那么,
公共变种用户:对象= {};
用户[名字] =条例;
用户[姓氏] =天才老爹;
比,如果我有一个用户值对象慢?
VAR用户:用户=新用户();
user.firstName =条例;
user.lastName =天才老爹;
解决方案
公共职能SPEEDTEST():无效
{
VAR typedObjects:数组= [];
VAR dynamicObjects:数组= [];
VAR typedObject:用户;
VAR dynamicObject:对象;
变种我:= 0;
变种N:INT = 10000;
对(我;我n种;我++)
{
dynamicObject = {};
dynamicObjects.push(dynamicObject);
typedObject =新用户();
typedObjects.push(typedObject);
}
//类型
VAR时间:INT =的getTimer();
I = 0;
N = 10000;
对(我;我n种;我++)
{
typedObject = typedObjects [I]
typedObject.firstName =条例;
typedObject.lastName =天才老爹;
}
VAR结束:INT =的getTimer() - 时间;
迹线(TypedObject时间:,结束/ 1000,秒);
//无类型
时间=的getTimer();
I = 0;
N = 10000;
对(我;我n种;我++)
{
dynamicObject = dynamicObjects [I]
dynamicObject [名字] =条例;
dynamicObject [姓氏] =天才老爹;
}
结束=的getTimer() - 时间;
迹线(DynamicObject时间:,结束/ 1000,秒);
}
简单的速度测试表明,TypedObject(用户
)大致3-3.5x比UntypedObject( {}
更快),但它没有什么你有没有注意到,在一天到一天。试用格兰特斯金纳的性能测试工具来运行一些更好/高级测试:)
3个简单的试运行:
TypedObject时间:0.002秒
DynamicObject时间:0.007秒
TypedObject时间:0.002秒
DynamicObject时间:0.006秒
TypedObject时间:0.002秒
DynamicObject时间:0.006秒
判决:类型化比非类型化快
So is
public var user:Object = {};
user["firstName"] = "Bill";
user["lastName"] = "Cosby";
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");
}
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 simple trial runs:
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
Verdict: Typed is faster than Untyped.
这篇关于什么是更快的普通物体或动作强类型的对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文