If-else vs. switch vs. lookup table (v18)

Revision 18 of this benchmark created on


Setup

function ifElseTest(stuff) {
    if(stuff === 1) {
      return 1;
    } else if (stuff === 2) {
      return 2;
    } else if (stuff === 3) {
      return 3;
    } else if (stuff === 4) {
      return 4;
    } else if (stuff === 5) {
      return 5;
    } else if (stuff === 6) {
      return 6;
    }
  };
  
  function switchTest(stuff) {
    switch (stuff) {
      case 1:
        return 1;
      break;
  
      case 2:
        return 2;
      break;
  
      case 3:
        return 3;
      break;
  
      case 4:
        return 4;
      break;
  
      case 5:
        return 5;
      break;
   
      case 6:
        return 6;
      break;
    }
  };
  
  var lookupTable = [
    function() 1,
    function() 2,
    function() 3,
    function() 4,
    function() 5,
    function() 6,
  ];

Test runner

Ready to run.

Testing in
TestOps/sec
if else
ifElseTest(1);
ifElseTest(3);
ifElseTest(5);
ready
switch
switchTest(1);
switchTest(3);
switchTest(5);
ready
lookup table
lookupTable[1]();
lookupTable[3]();
lookupTable[5]();
ready

Revisions

You can edit these tests or add more tests to this page by appending /edit to the URL.