Remainder Functions

JavaScript performance comparison

Revision 3 of this test case created

Preparation code

<script>
  var divisor = 10,
      number0 = -20,
      number1 = -19,
      number2 = -18,
      number3 = -17,
      number4 = -16,
      number5 = -15,
      number6 = -14,
      number7 = -13,
      number8 = -12,
      number9 = -11,
      number10 = -10,
      number11 = -9,
      number12 = -8,
      number13 = -7,
      number14 = -6,
      number15 = -5,
      number16 = -4,
      number17 = -3,
      number18 = -2,
      number19 = -1,
      number20 = 0,
      number21 = 1,
      number22 = 2,
      number23 = 3,
      number24 = 4,
      number25 = 5,
      number26 = 6,
      number27 = 7,
      number28 = 8,
      number29 = 9,
      number30 = 10,
      number31 = 11,
      number32 = 12,
      number33 = 13,
      number34 = 14,
      number35 = 15,
      number36 = 16,
      number37 = 17,
      number38 = 18,
      number39 = 19,
      number40 = 20,
      remainderFn1 = function(num, divisor) {
      return ((num % divisor) + divisor) % divisor;
      },
      remainderFn2 = function(num, divisor) {
      var remainder = num % divisor;
      if (remainder < 0) {
        return (remainder + divisor) % divisor;
      }
      return remainder;
      },
      remainderFn3 = function(num, divisor) {
      if (num < 0) {
        return ((num % divisor) + divisor) % divisor;
      } else {
        return num % divisor;
      }
      },
      remainderFn4 = function(num, divisor) {
      if (num >= 0) {
        return num % divisor;
      } else {
        return ((num % divisor) + divisor) % divisor;
      }
      },
      remainderFn5 = function(num, divisor) {
      if (!(num < 0)) {
        return num % divisor;
      } else {
        return ((num % divisor) + divisor) % divisor;
      }
      },
      remainderFn6 = function(num, divisor) {
      var remainder = num % divisor;
      if (remainder < 0) {
        remainder = (remainder + divisor) % divisor;
      }
      return remainder;
      };
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
Function 1
remainderFn1(number0, divisor);
remainderFn1(number1, divisor);
remainderFn1(number2, divisor);
remainderFn1(number3, divisor);
remainderFn1(number4, divisor);
remainderFn1(number5, divisor);
remainderFn1(number6, divisor);
remainderFn1(number7, divisor);
remainderFn1(number8, divisor);
remainderFn1(number9, divisor);
remainderFn1(number10, divisor);
remainderFn1(number11, divisor);
remainderFn1(number12, divisor);
remainderFn1(number13, divisor);
remainderFn1(number14, divisor);
remainderFn1(number15, divisor);
remainderFn1(number16, divisor);
remainderFn1(number17, divisor);
remainderFn1(number18, divisor);
remainderFn1(number19, divisor);
remainderFn1(number20, divisor);
remainderFn1(number21, divisor);
remainderFn1(number22, divisor);
remainderFn1(number23, divisor);
remainderFn1(number24, divisor);
remainderFn1(number25, divisor);
remainderFn1(number26, divisor);
remainderFn1(number27, divisor);
remainderFn1(number28, divisor);
remainderFn1(number29, divisor);
remainderFn1(number30, divisor);
remainderFn1(number31, divisor);
remainderFn1(number32, divisor);
remainderFn1(number33, divisor);
remainderFn1(number34, divisor);
remainderFn1(number35, divisor);
remainderFn1(number36, divisor);
remainderFn1(number37, divisor);
remainderFn1(number38, divisor);
remainderFn1(number39, divisor);
remainderFn1(number40, divisor);
pending…
Function 2
remainderFn2(number0, divisor);
remainderFn2(number1, divisor);
remainderFn2(number2, divisor);
remainderFn2(number3, divisor);
remainderFn2(number4, divisor);
remainderFn2(number5, divisor);
remainderFn2(number6, divisor);
remainderFn2(number7, divisor);
remainderFn2(number8, divisor);
remainderFn2(number9, divisor);
remainderFn2(number10, divisor);
remainderFn2(number11, divisor);
remainderFn2(number12, divisor);
remainderFn2(number13, divisor);
remainderFn2(number14, divisor);
remainderFn2(number15, divisor);
remainderFn2(number16, divisor);
remainderFn2(number17, divisor);
remainderFn2(number18, divisor);
remainderFn2(number19, divisor);
remainderFn2(number20, divisor);
remainderFn2(number21, divisor);
remainderFn2(number22, divisor);
remainderFn2(number23, divisor);
remainderFn2(number24, divisor);
remainderFn2(number25, divisor);
remainderFn2(number26, divisor);
remainderFn2(number27, divisor);
remainderFn2(number28, divisor);
remainderFn2(number29, divisor);
remainderFn2(number30, divisor);
remainderFn2(number31, divisor);
remainderFn2(number32, divisor);
remainderFn2(number33, divisor);
remainderFn2(number34, divisor);
remainderFn2(number35, divisor);
remainderFn2(number36, divisor);
remainderFn2(number37, divisor);
remainderFn2(number38, divisor);
remainderFn2(number39, divisor);
remainderFn2(number40, divisor);
pending…
Function 3
remainderFn3(number0, divisor);
remainderFn3(number1, divisor);
remainderFn3(number2, divisor);
remainderFn3(number3, divisor);
remainderFn3(number4, divisor);
remainderFn3(number5, divisor);
remainderFn3(number6, divisor);
remainderFn3(number7, divisor);
remainderFn3(number8, divisor);
remainderFn3(number9, divisor);
remainderFn3(number10, divisor);
remainderFn3(number11, divisor);
remainderFn3(number12, divisor);
remainderFn3(number13, divisor);
remainderFn3(number14, divisor);
remainderFn3(number15, divisor);
remainderFn3(number16, divisor);
remainderFn3(number17, divisor);
remainderFn3(number18, divisor);
remainderFn3(number19, divisor);
remainderFn3(number20, divisor);
remainderFn3(number21, divisor);
remainderFn3(number22, divisor);
remainderFn3(number23, divisor);
remainderFn3(number24, divisor);
remainderFn3(number25, divisor);
remainderFn3(number26, divisor);
remainderFn3(number27, divisor);
remainderFn3(number28, divisor);
remainderFn3(number29, divisor);
remainderFn3(number30, divisor);
remainderFn3(number31, divisor);
remainderFn3(number32, divisor);
remainderFn3(number33, divisor);
remainderFn3(number34, divisor);
remainderFn3(number35, divisor);
remainderFn3(number36, divisor);
remainderFn3(number37, divisor);
remainderFn3(number38, divisor);
remainderFn3(number39, divisor);
remainderFn3(number40, divisor);
pending…
Function 4
remainderFn4(number0, divisor);
remainderFn4(number1, divisor);
remainderFn4(number2, divisor);
remainderFn4(number3, divisor);
remainderFn4(number4, divisor);
remainderFn4(number5, divisor);
remainderFn4(number6, divisor);
remainderFn4(number7, divisor);
remainderFn4(number8, divisor);
remainderFn4(number9, divisor);
remainderFn4(number10, divisor);
remainderFn4(number11, divisor);
remainderFn4(number12, divisor);
remainderFn4(number13, divisor);
remainderFn4(number14, divisor);
remainderFn4(number15, divisor);
remainderFn4(number16, divisor);
remainderFn4(number17, divisor);
remainderFn4(number18, divisor);
remainderFn4(number19, divisor);
remainderFn4(number20, divisor);
remainderFn4(number21, divisor);
remainderFn4(number22, divisor);
remainderFn4(number23, divisor);
remainderFn4(number24, divisor);
remainderFn4(number25, divisor);
remainderFn4(number26, divisor);
remainderFn4(number27, divisor);
remainderFn4(number28, divisor);
remainderFn4(number29, divisor);
remainderFn4(number30, divisor);
remainderFn4(number31, divisor);
remainderFn4(number32, divisor);
remainderFn4(number33, divisor);
remainderFn4(number34, divisor);
remainderFn4(number35, divisor);
remainderFn4(number36, divisor);
remainderFn4(number37, divisor);
remainderFn4(number38, divisor);
remainderFn4(number39, divisor);
remainderFn4(number40, divisor);
pending…
Function 5
remainderFn5(number0, divisor);
remainderFn5(number1, divisor);
remainderFn5(number2, divisor);
remainderFn5(number3, divisor);
remainderFn5(number4, divisor);
remainderFn5(number5, divisor);
remainderFn5(number6, divisor);
remainderFn5(number7, divisor);
remainderFn5(number8, divisor);
remainderFn5(number9, divisor);
remainderFn5(number10, divisor);
remainderFn5(number11, divisor);
remainderFn5(number12, divisor);
remainderFn5(number13, divisor);
remainderFn5(number14, divisor);
remainderFn5(number15, divisor);
remainderFn5(number16, divisor);
remainderFn5(number17, divisor);
remainderFn5(number18, divisor);
remainderFn5(number19, divisor);
remainderFn5(number20, divisor);
remainderFn5(number21, divisor);
remainderFn5(number22, divisor);
remainderFn5(number23, divisor);
remainderFn5(number24, divisor);
remainderFn5(number25, divisor);
remainderFn5(number26, divisor);
remainderFn5(number27, divisor);
remainderFn5(number28, divisor);
remainderFn5(number29, divisor);
remainderFn5(number30, divisor);
remainderFn5(number31, divisor);
remainderFn5(number32, divisor);
remainderFn5(number33, divisor);
remainderFn5(number34, divisor);
remainderFn5(number35, divisor);
remainderFn5(number36, divisor);
remainderFn5(number37, divisor);
remainderFn5(number38, divisor);
remainderFn5(number39, divisor);
remainderFn5(number40, divisor);
pending…
Function 6
remainderFn6(number0, divisor);
remainderFn6(number1, divisor);
remainderFn6(number2, divisor);
remainderFn6(number3, divisor);
remainderFn6(number4, divisor);
remainderFn6(number5, divisor);
remainderFn6(number6, divisor);
remainderFn6(number7, divisor);
remainderFn6(number8, divisor);
remainderFn6(number9, divisor);
remainderFn6(number10, divisor);
remainderFn6(number11, divisor);
remainderFn6(number12, divisor);
remainderFn6(number13, divisor);
remainderFn6(number14, divisor);
remainderFn6(number15, divisor);
remainderFn6(number16, divisor);
remainderFn6(number17, divisor);
remainderFn6(number18, divisor);
remainderFn6(number19, divisor);
remainderFn6(number20, divisor);
remainderFn6(number21, divisor);
remainderFn6(number22, divisor);
remainderFn6(number23, divisor);
remainderFn6(number24, divisor);
remainderFn6(number25, divisor);
remainderFn6(number26, divisor);
remainderFn6(number27, divisor);
remainderFn6(number28, divisor);
remainderFn6(number29, divisor);
remainderFn6(number30, divisor);
remainderFn6(number31, divisor);
remainderFn6(number32, divisor);
remainderFn6(number33, divisor);
remainderFn6(number34, divisor);
remainderFn6(number35, divisor);
remainderFn6(number36, divisor);
remainderFn6(number37, divisor);
remainderFn6(number38, divisor);
remainderFn6(number39, divisor);
remainderFn6(number40, divisor);
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment