call vs apply w/ switch

JavaScript performance comparison

Revision 3 of this test case created

Preparation code

 
<script>
Benchmark.prototype.setup = function() {
    var args = arguments;
    var fn = function () {};
   
    var switchVersion = function(fn, args) {
      for (var i = 0; i < 100; i++) {
      switch (args.length) {
        case 0: fn.call(this); break;
        case 1: fn.call(this, args[0]); break;
        case 2: fn.call(this, args[0], args[1]); break;
        case 3: fn.call(this, args[1], args[2], args[3]); break;
      }
      }
    };
   
    var applyVersion = function(fn, args) {
      for (var i = 0; i < 100; i++) {
      fn.apply(this, args);
      }
    };
};
</script>

Test runner

Warning! For accurate results, please disable Firebug before running the tests. (Why?)

Java applet disabled.

Testing in unknown unknown
Test Ops/sec
switch/call
switchVersion(fn, args);
pending…
apply
applyVersion(fn, args);
pending…

Compare results of other browsers

Revisions

You can edit these tests or add even more tests to this page by appending /edit to the URL. Here’s a list of current revisions for this page:

0 comments

Add a comment