Object のテスト2
forked from Object のテスト (diff: 2)
回数変えただけ
ActionScript3 source code
/**
* Copyright bkzen ( http://wonderfl.net/user/bkzen )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/3ii2
*/
// forked from bkzen's Object のテスト
package
{
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.Sprite;
import flash.text.TextField;
import flash.utils.getTimer;
public class FlashTest extends Sprite
{
private var txt: TextField;
public function FlashTest()
{
// write as3 code here..
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e: Event = null): void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
stage.addEventListener(MouseEvent.CLICK, onClick);
trace("ステージクリックでスタート", "重いので注意");
}
private function onClick(e: MouseEvent): void
{
stage.align = "TL";
var obj: Object = { };
var t: uint;
var i: uint, n: uint = 80000;
trace("object に対してそれぞれ " + n + "回 処理します。");
trace("------");
t = getTimer();
for (i = 0; i < n; i++)
{
obj["a" + i] = true;
}
trace('obj["a" + i] = true', getTimer() - t);
t = getTimer();
for (i = 0; i < n; i++)
{
obj["z" + i] = true;
}
trace('obj["z" + i] = true', getTimer() - t);
t = getTimer();
for (i = 0; i < n; i++)
{
obj["b" + i] = true;
}
trace('obj["b" + i] = true', getTimer() - t);
t = getTimer();
for (i = 0; i < n; i++)
{
obj["$" + i] = true;
}
trace('obj["$" + i] = true', getTimer() - t);
trace("------");
t = getTimer();
for (i = 0; i < n; i++)
{
obj["a" + i] == true;
}
trace('obj["a" + i] == true', getTimer() - t);
t = getTimer();
for (i = 0; i < n; i++)
{
obj["z" + i] == true;
}
trace('obj["z" + i] == true', getTimer() - t);
t = getTimer();
for (i = 0; i < n; i++)
{
obj["b" + i] == true;
}
trace('obj["b" + i] == true', getTimer() - t);
t = getTimer();
for (i = 0; i < n; i++)
{
obj["$" + i] == true;
}
trace('obj["$" + i] == true', getTimer() - t);
t = getTimer();
for (i = 0; i < n; i++)
{
obj["c" + i] == true;
}
trace('obj["c" + i] == true', getTimer() - t);
}
private function trace(...args): void
{
if (!txt) addChild(txt = new TextField()), txt.width = stage.stageWidth, txt.height = stage.stageHeight, txt.text = "";
var i: uint, n: uint = args.length;
for (i = 0; i < n; i++)
{
txt.appendText(args[i] + (i == n - 1 ? "\n" : ", "));
}
}
}
}