If-else vs. switch vs. lookup table juan (v60)

Revision 60 of this benchmark created by Vyacheslav Egorov on


Description

one function for LUtable

Preparation HTML

<script>
</script>

Setup

var i = 0;
    var DATA = [
      "pizza", "pizza", 
      "water", "air", 
      "pizza", "water", 
      "water", "air"
    ];
    
    
    function ifElseTest(stuff) {
      if (stuff === "pizza") {
        return "food";
      } else if (stuff === "house") {
        return "building";
      } else if (stuff === "table") {
        return "furniture";
      } else if (stuff === "car") {
        return "driving";
      } else if (stuff === "water") {
        return "drink";
      } else if (stuff === "air") {
        return "nothing";
      }
    };
    
    function switchTest(stuff) {
      switch (stuff) {
        case "pizza":
          return "food";
          break;
    
        case "house":
          return "building";
          break;
    
        case "table":
          return "furniture";
          break;
    
        case "car":
          return "driving";
          break;
    
        case "water":
          return "drink";
          break;
    
        case "air":
          return "nothing";
          break;
      }
    };
    
    var lookupTable = function(blud) {
      var table = {
        "pizza": "food",
        "house": "building",
        "table": "furniture",
        "car": "driving",
        "water": "drink",
        "air": "nothing"
      };
      return table[blud];
    };
    
    var table = {
      "pizza": "food",
      "house": "building",
      "table": "furniture",
      "car": "driving",
      "water": "drink",
      "air": "nothing"
    };
    
    var lookupTableCached = function(blud) {
      return table[blud];
    };
    
    var result = "";

Teardown


    window.GLOBAL = result;
  

Test runner

Ready to run.

Testing in
TestOps/sec
if else
result = ifElseTest(DATA[i = (i + 1) & 7]);
 
ready
switch
result = switchTest(DATA[i = (i + 1) & 7]);
ready
lookup table
result = lookupTable(DATA[i = (i + 1) & 7]);
 
ready
lookup cached table
result = lookupTableCached(DATA[i = (i + 1) & 7]);
 
ready

Revisions

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