SHARE
TWEET

AIR 32 Windows Captive Number and Integer test

a guest Jun 17th, 2019 170 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package
  2. {
  3.     import flash.display.Sprite;
  4.     import flash.display.StageAlign;
  5.     import flash.display.StageScaleMode;
  6.     import flash.events.Event;
  7.     import flash.text.TextField;
  8.     import flash.text.TextFormat;
  9.     import flash.utils.getTimer;
  10.     import flash.utils.setTimeout;
  11.    
  12.     [SWF(frameRate="60", width="1336", height="768", backgroundColor="0x000000")]
  13.     public class Windows64BitPerformanceTest extends Sprite
  14.     {
  15.         private static var i:int = 0;
  16.         private static var c:int = 0;
  17.         private static var m:int = 0;
  18.         private static var f:int = 0;
  19.        
  20.         private static const ITERATION_COUNT:uint = 500000000;
  21.  
  22.         private static var _logTextField:TextField;
  23.         private static var _logTextFormat:TextFormat;
  24.        
  25.         public function Windows64BitPerformanceTest()
  26.         {
  27.             stage.align = StageAlign.TOP_LEFT;
  28.             stage.scaleMode = StageScaleMode.NO_SCALE;
  29.            
  30.             this.loaderInfo.addEventListener(Event.COMPLETE, this.loaderInfoLoadCompleteEventHandler);
  31.         }
  32.        
  33.         protected function loaderInfoLoadCompleteEventHandler(event:Event):void
  34.         {
  35.             _logTextFormat = new TextFormat('Verdana', 40, 0xFFFFFF, true, false, false, null, null, 'center');
  36.  
  37.             _logTextField = new TextField();
  38.             _logTextField.setTextFormat(_logTextFormat);
  39.             _logTextField.defaultTextFormat = _logTextFormat;
  40.             _logTextField.width = stage.stageWidth;
  41.             _logTextField.height = stage.stageHeight;
  42.  
  43.             addChild(_logTextField);
  44.            
  45.             setTimeout(runTest, 500);
  46.         }
  47.        
  48.         private function runTest():void
  49.         {
  50.             runPureAddIntTest();
  51.             runPureSubtractIntTest();
  52.            
  53.             runPureFloatAddTest();
  54.             runPureSubstractFloatTest();
  55.            
  56.             runPureIntPowerTest();
  57.             runPurePowerFloatTest();
  58.  
  59.             runPureDivisionFloatTest();
  60.            
  61.             runAddIntTest();
  62.             runSubstractIntTest();
  63.             runFloatAddTest();
  64.             runSubstractFloatTest();
  65.             runIntPowerTest();
  66.             runFloatPowerTest();
  67.             runIntModuloTest();
  68.             runFloatModuloTest();
  69.         }
  70.        
  71.         public static function runPureAddIntTest():void
  72.         {
  73.             var i:int = 0;
  74.             var a:int = 0;
  75.             var b:int = 0;
  76.             var c:int = 0;
  77.             var d:int = 0;
  78.             var f:int = 0;
  79.            
  80.             var startTime:int = getTimer();
  81.            
  82.             for(i = 0; i <= ITERATION_COUNT; i++)
  83.             {
  84.                 a++;
  85.                 b++;
  86.                 c++;
  87.                 d++;
  88.                 f++;
  89.             }
  90.            
  91.             _logTextField.text += "\nPure addition int test complete in: " + (getTimer() - startTime).toString();
  92.         }
  93.        
  94.         public static function runPureSubtractIntTest():void
  95.         {
  96.             var i:int  = 0;
  97.             var a:int  = int.MAX_VALUE;
  98.             var b:int  = int.MAX_VALUE;
  99.             var c:int  = int.MAX_VALUE;
  100.             var d:int  = int.MAX_VALUE;
  101.             var f:int  = int.MAX_VALUE;
  102.            
  103.             var startTime:int = getTimer();
  104.            
  105.             for(i = ITERATION_COUNT; i > 0; i--)
  106.             {
  107.                 a--;
  108.                 b--;
  109.                 c--;
  110.                 d--;
  111.                 f--;
  112.             }
  113.            
  114.             _logTextField.text += "\nPure subtract int test complete in: " + (getTimer() - startTime).toString();
  115.         }
  116.        
  117.         public static function runPureFloatAddTest():void
  118.         {
  119.             var i:int = 0;
  120.             var a:Number = 0;
  121.             var b:Number = 0;
  122.             var c:Number = 0;
  123.             var d:Number = 0;
  124.             var f:Number = 0;
  125.            
  126.             var increment1:Number = 0.1;
  127.             var increment2:Number = 0.2;
  128.             var increment3:Number = 0.3;
  129.             var increment4:Number = 0.4;
  130.             var increment5:Number = 0.5;
  131.            
  132.            
  133.             var startTime:int = getTimer();
  134.            
  135.             for(i = 0; i <= ITERATION_COUNT; i++)
  136.             {
  137.                 a += increment1;
  138.                 b += increment2;
  139.                 c += increment3;
  140.                 d += increment4;
  141.                 f += increment5;
  142.             }
  143.            
  144.             _logTextField.text += "\nPure addition float test complete in: " + (getTimer() - startTime).toString();
  145.         }
  146.        
  147.         public static function runPureSubstractFloatTest():void
  148.         {
  149.             var i:int = 0;
  150.             var a:Number = 0;
  151.             var b:Number = 0;
  152.             var c:Number = 0;
  153.             var d:Number = 0;
  154.             var f:Number = 0;
  155.            
  156.             var increment1:Number = 0.1;
  157.             var increment2:Number = 0.2;
  158.             var increment3:Number = 0.3;
  159.             var increment4:Number = 0.4;
  160.             var increment5:Number = 0.5;
  161.            
  162.             var startTime:int = getTimer();
  163.            
  164.             for(i = ITERATION_COUNT; i > 0; i--)
  165.             {
  166.                 a -= increment1;
  167.                 b -= increment2;
  168.                 c -= increment3;
  169.                 d -= increment4;
  170.                 f -= increment5;
  171.             }
  172.            
  173.             _logTextField.text += "\nPure subtract float test complete in: " + (getTimer() - startTime).toString();
  174.         }
  175.        
  176.         public static function runPureIntPowerTest():void
  177.         {
  178.             var i:int = 0;
  179.             var a:int = 0;
  180.             var b:int = 0;
  181.             var c:int = 0;
  182.             var d:int = 0;
  183.             var f:int = 0;
  184.            
  185.             var startTime:int = getTimer();
  186.            
  187.             for(i = 0; i <= ITERATION_COUNT; i++)
  188.             {
  189.                 a *= 2;
  190.                 b *= 2;
  191.                 c *= 2;
  192.                 d *= 2;
  193.                 f *= 2;
  194.             }
  195.            
  196.             _logTextField.text += "\nPure power int test complete in: " + (getTimer() - startTime).toString();
  197.         }
  198.        
  199.         public static function runPurePowerFloatTest():void
  200.         {
  201.             var i:int = 0;
  202.             var a:Number = 0;
  203.             var b:Number = 0;
  204.             var c:Number = 0;
  205.             var d:Number = 0;
  206.             var f:Number = 0;
  207.            
  208.             var increment1:Number = 0.1;
  209.             var increment2:Number = 0.2;
  210.             var increment3:Number = 0.3;
  211.             var increment4:Number = 0.4;
  212.             var increment5:Number = 0.5;
  213.            
  214.             var startTime:int = getTimer();
  215.            
  216.             for(i = 0; i <= ITERATION_COUNT; i++)
  217.             {
  218.                 a *= increment1;
  219.                 b *= increment2;
  220.                 c *= increment3;
  221.                 d *= increment4;
  222.                 f *= increment5;
  223.             }
  224.            
  225.             _logTextField.text += "\nPure power float test complete in: " + (getTimer() - startTime).toString();
  226.         }
  227.        
  228.         public static function runPureDivisionFloatTest():void
  229.         {
  230.             var i:int = 0;
  231.             var a:Number = Number.MAX_VALUE;
  232.             var b:Number = Number.MAX_VALUE;
  233.             var c:Number = Number.MAX_VALUE;
  234.             var d:Number = Number.MAX_VALUE;
  235.             var f:Number = Number.MAX_VALUE;
  236.            
  237.             var div1:Number = 1.0001;
  238.             var div2:Number = 1.0002;
  239.             var div3:Number = 1.0003;
  240.             var div4:Number = 1.0004;
  241.             var div5:Number = 1.0005;
  242.            
  243.             var startTime:int = getTimer();
  244.            
  245.             for(i = 0; i <= ITERATION_COUNT; i++)
  246.             {
  247.                 a /= div1;
  248.                 b /= div2;
  249.                 c /= div3;
  250.                 d /= div4;
  251.                 f /= div5;
  252.             }
  253.            
  254.             _logTextField.text += "\nPure division float test complete in: " + (getTimer() - startTime).toString();
  255.         }
  256.        
  257.         public static function runAddIntTest():void
  258.         {
  259.             var i:int = 0;
  260.             var c:int = 0;
  261.             var m:int = 0;
  262.             var f:int = 0;
  263.            
  264.             var startTime:int = getTimer();
  265.            
  266.             for(i = 0; i <= ITERATION_COUNT; i++)
  267.             {
  268.                 if(c % 2 == 0)
  269.                 {
  270.                     c++;
  271.                     f += c;
  272.                 }
  273.                 else
  274.                 {
  275.                     c += 2;
  276.                     f += c;
  277.                 }
  278.                
  279.                 if(m % 2 == 0)
  280.                 {
  281.                     m++;
  282.                     f += m;
  283.                 }
  284.                 else
  285.                 {
  286.                     m += 2;
  287.                     f += m;
  288.                 }
  289.             }
  290.            
  291.             _logTextField.text += "\nAddition int test complete in: " + (getTimer() - startTime).toString();
  292.         }
  293.        
  294.         public static function runSubstractIntTest():void
  295.         {
  296.             var i:int = 0;
  297.             var c1:int = 1;
  298.             var c2:int = 2;
  299.            
  300.             var d:int = int.MAX_VALUE;
  301.             var m:int = int.MAX_VALUE;
  302.             var f:int = int.MAX_VALUE;
  303.            
  304.             var startTime:int = getTimer();
  305.            
  306.             for(i = 0; i <= ITERATION_COUNT; i++)
  307.             {
  308.                 if(d % 2 == 0)
  309.                 {
  310.                     d--;
  311.                     f -= c1;
  312.                 }
  313.                 else
  314.                 {
  315.                     d -= c2;
  316.                     f -= c2;
  317.                 }
  318.                
  319.                 if(m % 2 == 0)
  320.                 {
  321.                     m--;
  322.                     f -= c1;
  323.                 }
  324.                 else
  325.                 {
  326.                     m -= c2;
  327.                     f -= c2;
  328.                 }
  329.             }
  330.            
  331.             _logTextField.text += "\nSubtract int test complete in: " + (getTimer() - startTime).toString();
  332.         }
  333.        
  334.         public static function runFloatAddTest():void
  335.         {
  336.             var i:int = 0;
  337.             var c:Number = 0;
  338.             var m:Number = 0;
  339.             var f:Number = 0;
  340.            
  341.             var startTime:int = getTimer();
  342.            
  343.             for(i = 0; i <= ITERATION_COUNT; i++)
  344.             {
  345.                 if(i % 2 == 0)
  346.                 {
  347.                     c++;
  348.                     f += c;
  349.                 }
  350.                 else
  351.                 {
  352.                     c += 2;
  353.                     f += c;
  354.                 }
  355.                
  356.                 if(i % 2 == 0)
  357.                 {
  358.                     m++;
  359.                     f += m;
  360.                 }
  361.                 else
  362.                 {
  363.                     m += 2;
  364.                     f += m;
  365.                 }
  366.             }
  367.            
  368.             _logTextField.text += "\nAddition float test complete in: " + (getTimer() - startTime).toString();
  369.         }
  370.        
  371.         public static function runSubstractFloatTest():void
  372.         {
  373.             var i:Number = 0;
  374.            
  375.             var c1:Number = 1.1;
  376.             var c2:Number = 2.2;
  377.            
  378.             var d:Number = Number.MAX_VALUE;
  379.             var m:Number = Number.MAX_VALUE;
  380.             var f:Number = Number.MAX_VALUE;
  381.            
  382.             var startTime:int = getTimer();
  383.            
  384.             for(i = 0; i <= ITERATION_COUNT; i++)
  385.             {
  386.                 if(i % 2 == 0)
  387.                 {
  388.                     d--;
  389.                     f -= c1;
  390.                 }
  391.                 else
  392.                 {
  393.                     d -= c2;
  394.                     f -= c2;
  395.                 }
  396.                
  397.                 if(i % 2 == 0)
  398.                 {
  399.                     d--;
  400.                     f -= c1;
  401.                 }
  402.                 else
  403.                 {
  404.                     d -= c2;
  405.                     f -= c2;
  406.                 }
  407.             }
  408.            
  409.             _logTextField.text += "\nSubtract float test complete in: " + (getTimer() - startTime).toString();
  410.         }
  411.        
  412.         public static function runIntPowerTest():void
  413.         {
  414.             var i:int = 0;
  415.            
  416.             var c:int = 0;
  417.            
  418.             var c1:int = 2;
  419.             var c2:int = 3;
  420.            
  421.             var m:int = 0;
  422.             var f:int = 0;
  423.            
  424.             var startTime:int = getTimer();
  425.            
  426.             for(i = 0; i <= ITERATION_COUNT; i++)
  427.             {
  428.                 if(c % 2 == 0)
  429.                 {
  430.                     c *= c1;
  431.                     f *= c;
  432.                 }
  433.                 else
  434.                 {
  435.                     c *= c2;
  436.                     f *= c;
  437.                 }
  438.                
  439.                 if(m % 2 == 0)
  440.                 {
  441.                     m *= c1;
  442.                     f += m;
  443.                 }
  444.                 else
  445.                 {
  446.                     m += c2;
  447.                     f += m;
  448.                 }
  449.             }
  450.            
  451.             _logTextField.text += "\nPower int test complete in: " + (getTimer() - startTime).toString();
  452.         }
  453.        
  454.         public static function runFloatPowerTest():void
  455.         {
  456.             var i:int = 0;
  457.            
  458.             var c:Number = 0;
  459.            
  460.             var c1:Number = 1.5;
  461.             var c2:Number = 1.9;
  462.            
  463.             var m:Number = 0;
  464.             var f:Number = 0;
  465.            
  466.             var startTime:int = getTimer();
  467.            
  468.             for(i = 0; i <= ITERATION_COUNT; i++)
  469.             {
  470.                 if(i % 2 == 0)
  471.                 {
  472.                     c *= c1;
  473.                     f *= c;
  474.                 }
  475.                 else
  476.                 {
  477.                     c *= c2;
  478.                     f *= c;
  479.                 }
  480.                
  481.                 if(i % 2 == 0)
  482.                 {
  483.                     m *= c1;
  484.                     f += m;
  485.                 }
  486.                 else
  487.                 {
  488.                     m += c2;
  489.                     f += m;
  490.                 }
  491.             }
  492.            
  493.             _logTextField.text += "\nPower float test complete in: " + (getTimer() - startTime).toString();
  494.         }
  495.        
  496.         public static function runIntModuloTest():void
  497.         {
  498.             var i:int = 0;
  499.            
  500.             var c:int = 2;
  501.            
  502.             var c1:int = 2;
  503.             var c2:int = 3;
  504.            
  505.             var m:int = 4;
  506.             var f:int = 8;
  507.            
  508.             var hasRemainder:Boolean;
  509.            
  510.             var startTime:int = getTimer();
  511.            
  512.             for(i = 0; i <= ITERATION_COUNT; i++)
  513.             {
  514.                 if(i % 2 == 0)
  515.                 {
  516.                     hasRemainder = c % c1 == 0;
  517.                     hasRemainder = f % c == 0;
  518.                 }
  519.                 else
  520.                 {
  521.                     hasRemainder = c % c2 == 0;
  522.                     hasRemainder = f % c == 0;
  523.                 }
  524.                
  525.                 if(i % 2 == 0)
  526.                 {
  527.                     hasRemainder = m % c1 == 0;
  528.                     hasRemainder = f % m == 0;
  529.                 }
  530.                 else
  531.                 {
  532.                     hasRemainder = m % c2 == 0;
  533.                     hasRemainder = f % m == 0;
  534.                 }
  535.             }
  536.            
  537.             _logTextField.text += "\nModulo int test complete in: " + (getTimer() - startTime).toString();
  538.         }
  539.        
  540.         public static function runFloatModuloTest():void
  541.         {
  542.             var i:int = 0;
  543.            
  544.             var c:Number = 2.0;
  545.            
  546.             var c1:Number = 1.5;
  547.             var c2:Number = 1.9;
  548.            
  549.             var m:Number = 4.0;
  550.             var f:Number = 8.0;
  551.            
  552.             var hasRemainder:Boolean;
  553.            
  554.             var startTime:int = getTimer();
  555.            
  556.             for(i = 0; i <= ITERATION_COUNT; i++)
  557.             {
  558.                 if(i % 2 == 0)
  559.                 {
  560.                     hasRemainder = c % c1 == 0.0;
  561.                     hasRemainder = f % c == 0.0;
  562.                 }
  563.                 else
  564.                 {
  565.                     hasRemainder = c % c2 == 0.0;
  566.                     hasRemainder = f % c == 0.0;
  567.                 }
  568.                
  569.                 if(i % 2 == 0)
  570.                 {
  571.                     hasRemainder = m % c1 == 0.0;
  572.                     hasRemainder = f % m == 0.0;
  573.                 }
  574.                 else
  575.                 {
  576.                     hasRemainder = m % c2 == 0.0;
  577.                     hasRemainder = f % m == 0.0;
  578.                 }
  579.             }
  580.            
  581.             _logTextField.text += "\nModulo float test complete in: " + (getTimer() - startTime).toString();
  582.         }
  583.  
  584.     }
  585. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
Not a member of Pastebin yet?
Sign Up, it unlocks many cool features!
 
Top