[url]http://bbs.9ria.com/viewthread.php?tid=70879&extra=page%3D1%26amp;orderby%3Ddateline%26amp;filter%3D86400[/url]
package
{
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.sampler.getSize;
import flash.utils.Dictionary;
import flash.utils.getTimer;
/**
*
* @author iifla.com
*/
public class TestMain extends Sprite
{
var m_dec:Dictionary;
var m_obj:Object;
var m_num:int;
private var m_arr:Array;
public function TestMain()
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, testListener);
trace("ok...");
}
private function testListener(e:KeyboardEvent):void
{
var t_num:int=100000;
if (e.charCode == 97)
{
m_num = getTimer();
initDict(t_num);
trace("写入时间 initDict: " + (getTimer() - m_num));
m_num = getTimer();
initObje(t_num);
trace("写入时间 initObje: " + (getTimer() - m_num));
m_num = getTimer();
initArray(t_num);
trace("写入时间 initArray: " + (getTimer() - m_num));
trace("内存 Dictionary: " + (getSize(m_dec)));
trace("内存 Object: " + (getSize(m_obj)));
trace("内存 Array: " + (getSize(m_arr)));
}
else if (e.charCode == 98)
{
m_num = getTimer();
for ( i = 0; i < t_num; i++)
{
testDictionary(i);
}
trace("读取时间 testDictionary: " + (getTimer() - m_num));
m_num = getTimer();
for (var i:int=0; i < t_num; i++)
{
testObject(i);
}
trace("读取时间 testObject: " + (getTimer() - m_num));
m_num = getTimer();
for ( i = 0; i < t_num; i++)
{
testArray(i);
}
trace("读取时间 testArry: " + (getTimer() - m_num));
}
}
private function testDictionary(i:int):void
{
m_dec[i](i);
}
private function testObject(i:int):void
{
m_obj[i](i);
}
private function testArray(i:int):void
{
m_arr[i](i);
}
private function initDict(_num:int):void
{
m_dec = new Dictionary();
for (var i:int=0; i < _num; i++)
{
m_dec[i] = traceLog;
}
}
private function initObje(_num:int):void
{
m_obj = new Object();
for (var i:int=0; i < _num; i++)
{
m_obj[i] = traceLog;
}
}
private function initArray(_num:int):void
{
m_arr = new Array();
for (var i:int=0; i < _num; i++)
{
m_arr[i] = traceLog;
}
}
private function traceLog(_str:int):void
{
// trace("_str==" + _str);
}
}
}
测试的结果:
写入时间 initDict: 49
写入时间 initObje: 42
写入时间 initArray: 27
内存 Dictionary: 1048616
内存 Object: 1048600
内存 Array: 483360
读取时间 testDictionary: 114
读取时间 testObject: 110
读取时间 testArry: 103
相信肯定跟好的人想法不一致了。
package
{
import flash.display.Sprite;
import flash.events.KeyboardEvent;
import flash.sampler.getSize;
import flash.utils.Dictionary;
import flash.utils.getTimer;
/**
*
* @author iifla.com
*/
public class TestMain extends Sprite
{
var m_dec:Dictionary;
var m_obj:Object;
var m_num:int;
private var m_arr:Array;
public function TestMain()
{
stage.addEventListener(KeyboardEvent.KEY_DOWN, testListener);
trace("ok...");
}
private function testListener(e:KeyboardEvent):void
{
var t_num:int=100000;
if (e.charCode == 97)
{
m_num = getTimer();
initDict(t_num);
trace("写入时间 initDict: " + (getTimer() - m_num));
m_num = getTimer();
initObje(t_num);
trace("写入时间 initObje: " + (getTimer() - m_num));
m_num = getTimer();
initArray(t_num);
trace("写入时间 initArray: " + (getTimer() - m_num));
trace("内存 Dictionary: " + (getSize(m_dec)));
trace("内存 Object: " + (getSize(m_obj)));
trace("内存 Array: " + (getSize(m_arr)));
}
else if (e.charCode == 98)
{
m_num = getTimer();
for ( i = 0; i < t_num; i++)
{
testDictionary(i);
}
trace("读取时间 testDictionary: " + (getTimer() - m_num));
m_num = getTimer();
for (var i:int=0; i < t_num; i++)
{
testObject(i);
}
trace("读取时间 testObject: " + (getTimer() - m_num));
m_num = getTimer();
for ( i = 0; i < t_num; i++)
{
testArray(i);
}
trace("读取时间 testArry: " + (getTimer() - m_num));
}
}
private function testDictionary(i:int):void
{
m_dec[i](i);
}
private function testObject(i:int):void
{
m_obj[i](i);
}
private function testArray(i:int):void
{
m_arr[i](i);
}
private function initDict(_num:int):void
{
m_dec = new Dictionary();
for (var i:int=0; i < _num; i++)
{
m_dec[i] = traceLog;
}
}
private function initObje(_num:int):void
{
m_obj = new Object();
for (var i:int=0; i < _num; i++)
{
m_obj[i] = traceLog;
}
}
private function initArray(_num:int):void
{
m_arr = new Array();
for (var i:int=0; i < _num; i++)
{
m_arr[i] = traceLog;
}
}
private function traceLog(_str:int):void
{
// trace("_str==" + _str);
}
}
}
测试的结果:
写入时间 initDict: 49
写入时间 initObje: 42
写入时间 initArray: 27
内存 Dictionary: 1048616
内存 Object: 1048600
内存 Array: 483360
读取时间 testDictionary: 114
读取时间 testObject: 110
读取时间 testArry: 103
相信肯定跟好的人想法不一致了。