Tests:
  • switch case

    x
     
    function thing(j)
    {
      switch(j)
      {
        case '0':
          return "zero";
        case '1':
          return "one";
        case '2':
          return "two";
        case '3':
          return "three";
        case '4':
          return "four";
        case '5':
          return "five";
        case '6':
          return "six";
        case '7':
          return "seven";
        case '8':
          return "eight";
        case '9':
          return "nine";
      }
    }
    for(let i = 0; i < 100000; i++)
    {
      thing((i % 10).toString());
    }
  • jump hash map object

     
    function zero()
    {
      return "zero";
    }
    function one()
    {
      return "one";
    }
    function two()
    {
      return "two";
    }
    function three()
    {
      return "three";
    }
    function four()
    {
      return "four";
    }
    function five()
    {
      return "five";
    }
    function six()
    {
      return "six";
    }
    function seven()
    {
      return "seven";
    }
    function eight()
    {
      return "eight";
    }
    function nine()
    {
      return "nine";
    }
    let jumpMap = {
      '0': zero,
      '1': one,
      '2': two,
      '3': three,
      '4': four,
      '5': five,
      '6': six,
      '7': seven,
      '8': eight,
      '9': nine
    };
    for(let i = 0; i < 100000; i++)
    {
      jumpMap[(i % 10).toString()]();
    }
  • jump map instance

     
    function zero()
    {
      return "zero";
    }
    function one()
    {
      return "one";
    }
    function two()
    {
      return "two";
    }
    function three()
    {
      return "three";
    }
    function four()
    {
      return "four";
    }
    function five()
    {
      return "five";
    }
    function six()
    {
      return "six";
    }
    function seven()
    {
      return "seven";
    }
    function eight()
    {
      return "eight";
    }
    function nine()
    {
      return "nine";
    }
    let jumpMap = new Map();
    jumpMap.set('0', zero)
    jumpMap.set('1', one)
    jumpMap.set('2', two)
    jumpMap.set('3', three)
    jumpMap.set('4', four)
    jumpMap.set('5', five)
    jumpMap.set('6', six)
    jumpMap.set('7', seven)
    jumpMap.set('8', eight)
    jumpMap.set('9', nine)
    for(let i = 0; i < 100000; i++)
    {
      jumpMap.get((i % 10).toString())();
    }
  • else if

     
    function thing(j)
    {
      if (j === '0') {
        return 'zero';
      } else if (j === '1') {
        return 'one'; 
      } else if (j === '2') {
        return 'two'; 
      } else if (j === '3') {
        return 'three'; 
      } else if (j === '4') {
        return 'four';
      } else if (j === '5') {
        return 'five';
      } else if (j === '6') {
        return 'six';
      } else if (j === '7') {
        return 'seven';
      } else if (j === '8') {
        return 'eight'; 
      } else if (j === '9') {
        return 'nine'; 
      }
    }
    for(let i = 0; i < 100000; i++)
    {
      thing((i % 10).toString());
    }
Rendered benchmark preparation results:

Suite status: <idle, ready to run>

Previous results

Experimental features:

  • Test case name Result
    switch case
    jump hash map object
    jump map instance
    else if

    Fastest: N/A

    Slowest: N/A

Latest run results:
Run details: (Test run date: one year ago)
Mozilla/5.0 (X11; Linux x86_64; rv:121.0) Gecko/20100101 Firefox/121.0
Firefox 121 on Linux
View result in a separate tab
Test name Executions per second
switch case 924.6 Ops/sec
jump hash map object 1108.2 Ops/sec
jump map instance 790.6 Ops/sec
else if 803.1 Ops/sec