Switch vs Hash vs Others (v30)

Revision 30 of this benchmark created on


Setup

var index = 0;
  var foo = 0;
  var cached = {};
  
  var cases = [];
  cases[0] = function() { foo++ };
  cases[1] = function() { foo++ };
  cases[2] = function() { foo++ };
  cases[3] = function() { foo++ };
  cases[4] = function() { foo++ };
  cases[5] = function() { foo++ };
  cases[6] = function() { foo++ };
  cases[7] = function() { foo++ };
  cases[8] = function() { foo++ };
  cases[9] = function() { foo++ };
  
  function hash(index) { cases[index](); }
  function switched(index) {
  switch (index) {
    case 0:
      cases[0](); break;
    case 1:
      cases[1](); break;
    case 2:
      cases[2](); break;
    case 3:
      cases[3](); break;
    case 4:
      cases[4](); break;
    case 5:
      cases[5](); break;
    case 6:
      cases[6](); break;
    case 7:
      cases[7](); break;
    case 8:
      cases[8](); break;
    case 9:
      cases[9](); break;
    }
  }

Test runner

Ready to run.

Testing in
TestOps/sec
Switch
for (index = 0; index < 10; index++) {
  switched(index);
}
ready
Hash
for (index = 0; index < 10; index++) {
  hash(index);
}
ready
Cached Hash
ready
If ===
ready
If ==
ready

Revisions

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