local vs global functions (v2)

Revision 2 of this benchmark created by TA on


Description

Compares locally defined functions and globally defined functions.

Revision 2: Added "closed local" test that only defines "helper" once, unlike "local", which defines it every call.

Preparation HTML

<script>
  function foo1() {
   var helper = function(val) {
    return val * val * Math.sin(val);
   }
   var obj = [];
   for (var i = 0; i < 10; i++) {
    obj[i] = helper(i);
   }
  }
  
  function foo2() {
   var obj = [];
   for (var i = 0; i < 10; i++) {
    obj[i] = helper(i);
   }
  }
  
  function helper(val) {
   return val * val * Math.sin(val);
  }
  
  var foo3 = (function() {
   function helper(val) {
    return val * val * Math.sin(val);
   }
   return function() {
    var obj = [];
    for (var i = 0; i < 10; i++) {
     obj[i] = helper(i);
    }
   };
  });
  
  function runFoo1() {
   for (var i = 0; i < 100; i++) {
    foo1();
   }
  }
  
  function runFoo2() {
   for (var i = 0; i < 100; i++) {
    foo2();
   }
  }
  
  function runFoo3() {
   for (var i = 0; i < 100; i++) {
    foo3();
   }
  }
</script>

Test runner

Ready to run.

Testing in
TestOps/sec
local
runFoo1();
ready
global
runFoo2();
ready
closed local
runFoo3();
ready

Revisions

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