forked from: Vector index casting
/**
* Copyright pleclech ( http://wonderfl.net/user/pleclech )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/jJu7m
*/
// forked from inspirit's Vector index casting
package {
import flash.utils.getTimer;
import flash.text.TextField;
import flash.events.*;
import flash.display.Sprite;
public class FlashTest extends Sprite {
public var _txt:TextField;
public function FlashTest() {
_txt = new TextField();
_txt.width = 300;
_txt.autoSize = 'left';
addChild(_txt);
stage.addEventListener(MouseEvent.CLICK, test);
}
public function test(e:Event = null):void
{
var n:uint = 1000000;
var i:uint;
var vec:Vector.<Number> = new Vector.<Number>(n, true);
_txt.text = '';
var t:int = getTimer();
for(i = 0; i < n; ++i)
{
vec[i+0.0] = 1.0;
}
_txt.appendText('no cast: ' + (getTimer()-t) + 'ms\n');
//
t = getTimer();
for(i = 0; i < n; ++i)
{
vec[(i+0.0)|0] = 1.0;
}
_txt.appendText('bit cast: ' + (getTimer()-t) + 'ms\n');
//
t = getTimer();
for(i = 0; i < n; ++i)
{
vec[int(i+0.0)] = 1.0;
}
_txt.appendText('int cast: ' + (getTimer()-t) + 'ms\n');
//
t = getTimer();
for(i = 0; i < n; ++i)
{
vec[uint(i+0.0)] = 1.0;
}
_txt.appendText('uint cast: ' + (getTimer()-t) + 'ms\n');
}
}
}