Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package
- {
- import flash.display.Sprite;
- import flash.display.StageAlign;
- import flash.display.StageScaleMode;
- import flash.events.Event;
- import flash.text.TextField;
- import flash.text.TextFormat;
- import flash.utils.getTimer;
- import flash.utils.setTimeout;
- [SWF(frameRate="60", width="1336", height="768", backgroundColor="0x000000")]
- public class Windows64BitPerformanceTest extends Sprite
- {
- private static var i:int = 0;
- private static var c:int = 0;
- private static var m:int = 0;
- private static var f:int = 0;
- private static const ITERATION_COUNT:uint = 500000000;
- private static var _logTextField:TextField;
- private static var _logTextFormat:TextFormat;
- public function Windows64BitPerformanceTest()
- {
- stage.align = StageAlign.TOP_LEFT;
- stage.scaleMode = StageScaleMode.NO_SCALE;
- this.loaderInfo.addEventListener(Event.COMPLETE, this.loaderInfoLoadCompleteEventHandler);
- }
- protected function loaderInfoLoadCompleteEventHandler(event:Event):void
- {
- _logTextFormat = new TextFormat('Verdana', 40, 0xFFFFFF, true, false, false, null, null, 'center');
- _logTextField = new TextField();
- _logTextField.setTextFormat(_logTextFormat);
- _logTextField.defaultTextFormat = _logTextFormat;
- _logTextField.width = stage.stageWidth;
- _logTextField.height = stage.stageHeight;
- addChild(_logTextField);
- setTimeout(runTest, 500);
- }
- private function runTest():void
- {
- runPureAddIntTest();
- runPureSubtractIntTest();
- runPureFloatAddTest();
- runPureSubstractFloatTest();
- runPureIntPowerTest();
- runPurePowerFloatTest();
- runPureDivisionFloatTest();
- runAddIntTest();
- runSubstractIntTest();
- runFloatAddTest();
- runSubstractFloatTest();
- runIntPowerTest();
- runFloatPowerTest();
- runIntModuloTest();
- runFloatModuloTest();
- }
- public static function runPureAddIntTest():void
- {
- var i:int = 0;
- var a:int = 0;
- var b:int = 0;
- var c:int = 0;
- var d:int = 0;
- var f:int = 0;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- a++;
- b++;
- c++;
- d++;
- f++;
- }
- _logTextField.text += "\nPure addition int test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runPureSubtractIntTest():void
- {
- var i:int = 0;
- var a:int = int.MAX_VALUE;
- var b:int = int.MAX_VALUE;
- var c:int = int.MAX_VALUE;
- var d:int = int.MAX_VALUE;
- var f:int = int.MAX_VALUE;
- var startTime:int = getTimer();
- for(i = ITERATION_COUNT; i > 0; i--)
- {
- a--;
- b--;
- c--;
- d--;
- f--;
- }
- _logTextField.text += "\nPure subtract int test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runPureFloatAddTest():void
- {
- var i:int = 0;
- var a:Number = 0;
- var b:Number = 0;
- var c:Number = 0;
- var d:Number = 0;
- var f:Number = 0;
- var increment1:Number = 0.1;
- var increment2:Number = 0.2;
- var increment3:Number = 0.3;
- var increment4:Number = 0.4;
- var increment5:Number = 0.5;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- a += increment1;
- b += increment2;
- c += increment3;
- d += increment4;
- f += increment5;
- }
- _logTextField.text += "\nPure addition float test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runPureSubstractFloatTest():void
- {
- var i:int = 0;
- var a:Number = 0;
- var b:Number = 0;
- var c:Number = 0;
- var d:Number = 0;
- var f:Number = 0;
- var increment1:Number = 0.1;
- var increment2:Number = 0.2;
- var increment3:Number = 0.3;
- var increment4:Number = 0.4;
- var increment5:Number = 0.5;
- var startTime:int = getTimer();
- for(i = ITERATION_COUNT; i > 0; i--)
- {
- a -= increment1;
- b -= increment2;
- c -= increment3;
- d -= increment4;
- f -= increment5;
- }
- _logTextField.text += "\nPure subtract float test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runPureIntPowerTest():void
- {
- var i:int = 0;
- var a:int = 0;
- var b:int = 0;
- var c:int = 0;
- var d:int = 0;
- var f:int = 0;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- a *= 2;
- b *= 2;
- c *= 2;
- d *= 2;
- f *= 2;
- }
- _logTextField.text += "\nPure power int test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runPurePowerFloatTest():void
- {
- var i:int = 0;
- var a:Number = 0;
- var b:Number = 0;
- var c:Number = 0;
- var d:Number = 0;
- var f:Number = 0;
- var increment1:Number = 0.1;
- var increment2:Number = 0.2;
- var increment3:Number = 0.3;
- var increment4:Number = 0.4;
- var increment5:Number = 0.5;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- a *= increment1;
- b *= increment2;
- c *= increment3;
- d *= increment4;
- f *= increment5;
- }
- _logTextField.text += "\nPure power float test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runPureDivisionFloatTest():void
- {
- var i:int = 0;
- var a:Number = Number.MAX_VALUE;
- var b:Number = Number.MAX_VALUE;
- var c:Number = Number.MAX_VALUE;
- var d:Number = Number.MAX_VALUE;
- var f:Number = Number.MAX_VALUE;
- var div1:Number = 1.0001;
- var div2:Number = 1.0002;
- var div3:Number = 1.0003;
- var div4:Number = 1.0004;
- var div5:Number = 1.0005;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- a /= div1;
- b /= div2;
- c /= div3;
- d /= div4;
- f /= div5;
- }
- _logTextField.text += "\nPure division float test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runAddIntTest():void
- {
- var i:int = 0;
- var c:int = 0;
- var m:int = 0;
- var f:int = 0;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- if(c % 2 == 0)
- {
- c++;
- f += c;
- }
- else
- {
- c += 2;
- f += c;
- }
- if(m % 2 == 0)
- {
- m++;
- f += m;
- }
- else
- {
- m += 2;
- f += m;
- }
- }
- _logTextField.text += "\nAddition int test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runSubstractIntTest():void
- {
- var i:int = 0;
- var c1:int = 1;
- var c2:int = 2;
- var d:int = int.MAX_VALUE;
- var m:int = int.MAX_VALUE;
- var f:int = int.MAX_VALUE;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- if(d % 2 == 0)
- {
- d--;
- f -= c1;
- }
- else
- {
- d -= c2;
- f -= c2;
- }
- if(m % 2 == 0)
- {
- m--;
- f -= c1;
- }
- else
- {
- m -= c2;
- f -= c2;
- }
- }
- _logTextField.text += "\nSubtract int test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runFloatAddTest():void
- {
- var i:int = 0;
- var c:Number = 0;
- var m:Number = 0;
- var f:Number = 0;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- if(i % 2 == 0)
- {
- c++;
- f += c;
- }
- else
- {
- c += 2;
- f += c;
- }
- if(i % 2 == 0)
- {
- m++;
- f += m;
- }
- else
- {
- m += 2;
- f += m;
- }
- }
- _logTextField.text += "\nAddition float test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runSubstractFloatTest():void
- {
- var i:Number = 0;
- var c1:Number = 1.1;
- var c2:Number = 2.2;
- var d:Number = Number.MAX_VALUE;
- var m:Number = Number.MAX_VALUE;
- var f:Number = Number.MAX_VALUE;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- if(i % 2 == 0)
- {
- d--;
- f -= c1;
- }
- else
- {
- d -= c2;
- f -= c2;
- }
- if(i % 2 == 0)
- {
- d--;
- f -= c1;
- }
- else
- {
- d -= c2;
- f -= c2;
- }
- }
- _logTextField.text += "\nSubtract float test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runIntPowerTest():void
- {
- var i:int = 0;
- var c:int = 0;
- var c1:int = 2;
- var c2:int = 3;
- var m:int = 0;
- var f:int = 0;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- if(c % 2 == 0)
- {
- c *= c1;
- f *= c;
- }
- else
- {
- c *= c2;
- f *= c;
- }
- if(m % 2 == 0)
- {
- m *= c1;
- f += m;
- }
- else
- {
- m += c2;
- f += m;
- }
- }
- _logTextField.text += "\nPower int test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runFloatPowerTest():void
- {
- var i:int = 0;
- var c:Number = 0;
- var c1:Number = 1.5;
- var c2:Number = 1.9;
- var m:Number = 0;
- var f:Number = 0;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- if(i % 2 == 0)
- {
- c *= c1;
- f *= c;
- }
- else
- {
- c *= c2;
- f *= c;
- }
- if(i % 2 == 0)
- {
- m *= c1;
- f += m;
- }
- else
- {
- m += c2;
- f += m;
- }
- }
- _logTextField.text += "\nPower float test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runIntModuloTest():void
- {
- var i:int = 0;
- var c:int = 2;
- var c1:int = 2;
- var c2:int = 3;
- var m:int = 4;
- var f:int = 8;
- var hasRemainder:Boolean;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- if(i % 2 == 0)
- {
- hasRemainder = c % c1 == 0;
- hasRemainder = f % c == 0;
- }
- else
- {
- hasRemainder = c % c2 == 0;
- hasRemainder = f % c == 0;
- }
- if(i % 2 == 0)
- {
- hasRemainder = m % c1 == 0;
- hasRemainder = f % m == 0;
- }
- else
- {
- hasRemainder = m % c2 == 0;
- hasRemainder = f % m == 0;
- }
- }
- _logTextField.text += "\nModulo int test complete in: " + (getTimer() - startTime).toString();
- }
- public static function runFloatModuloTest():void
- {
- var i:int = 0;
- var c:Number = 2.0;
- var c1:Number = 1.5;
- var c2:Number = 1.9;
- var m:Number = 4.0;
- var f:Number = 8.0;
- var hasRemainder:Boolean;
- var startTime:int = getTimer();
- for(i = 0; i <= ITERATION_COUNT; i++)
- {
- if(i % 2 == 0)
- {
- hasRemainder = c % c1 == 0.0;
- hasRemainder = f % c == 0.0;
- }
- else
- {
- hasRemainder = c % c2 == 0.0;
- hasRemainder = f % c == 0.0;
- }
- if(i % 2 == 0)
- {
- hasRemainder = m % c1 == 0.0;
- hasRemainder = f % m == 0.0;
- }
- else
- {
- hasRemainder = m % c2 == 0.0;
- hasRemainder = f % m == 0.0;
- }
- }
- _logTextField.text += "\nModulo float test complete in: " + (getTimer() - startTime).toString();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement