Guest User

NodeJS Number and Integer Performance Test

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