Prototype vs Module pattern performance

JavaScript performance comparison

Revision 138 of this test case created by test

Preparation code


      
      <script>
Benchmark.prototype.setup = function() {
  function TraditionalPrototypeClass() {
  }
  
  TraditionalPrototypeClass.prototype.foo = function() {
  };
  
  TraditionalPrototypeClass.prototype.bar = function() {
  };
  
  function ModulePatternClass() {
      this.foo = function() {
      };
      
      this.bar = function() {
      };
  }
  
  var ModuleCachePatternClass = (function () {
      function foo() {
      }
      
      function bar() {
      }
      
      return function () {
          this.foo = foo;
          this.bar = bar;
      };
  }());
  
  var standardObject = {
      foo: function(){
      },
      bar: function(){
      }
  };
  
  //var o1 = new TraditionalPrototypeClass();
  //var o2 = new ModulePatternClass();
  //var o3 = new ModuleCachePatternClass();
  //var o4 = standardObject;

};
</script>

Test runner

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

Java applet disabled.

Testing in CCBot 2.0.0 / Other 0.0.0
Test Ops/sec
Prototypal
var o = new TraditionalPrototypeClass()
o.bar();
o.foo();

//o1.bar();
//o1.foo();
pending…
Module pattern
var o = new ModulePatternClass()
o.bar();
o.foo();

//o2.bar();
//o2.foo();
pending…
Module pattern with cached functions
var o = new ModuleCachePatternClass()
o.bar();
o.foo();

//o3.bar();
//o3.foo();
pending…
Use the right tool for the job
var o = standardObject;
o.bar();
o.foo();

//o4.bar();
//o4.foo();
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.

0 Comments