chrome prototype performance (v3)

Revision 3 of this benchmark created on


Setup

var sum = function () {
      return this.a+this.b;
    };
    
    
    function A1 (a,b) {
      this.a = a;
      this.b = b;
    }
    
    A1.prototype.sum = sum;
    A1.prototype.iLoveChrome1 = function() {};
    A1.prototype.iLoveChrome2 = function() {};
    A1.prototype.iLoveChrome3 = function() {};
    A1.prototype.iLoveChrome4 = function() {};
    A1.prototype.iLoveChrome5 = function() {};
    A1.prototype.iLoveChrome6 = function() {};
    A1.prototype.iLoveChrome7 = function() {};
    A1.prototype.iLoveChrome8 = function() {};
    A1.prototype.iLoveChrome8 = function() {};
    A1.prototype.iLoveChrome9 = function() {};
    A1.prototype.iLoveChrome10 = function() {};
    A1.prototype.iLoveChrome11 = function() {};
    A1.prototype.iLoveChrome12 = function() {};
    A1.prototype.iLoveChrome13 = function() {};
    A1.prototype.iLoveChrome14 = function() {};
    A1.prototype.iLoveChrome15 = function() {};
    A1.prototype.iLoveChrome16 = function() {};
    A1.prototype.iLoveChrome17 = function() {};
    A1.prototype.iLoveChrome18 = function() {};
    A1.prototype.iLoveChrome19 = function() {};
    
    
    function A2 (a,b) {
      this.a = a;
      this.b = b;
    }
    
    A2.prototype.sum = sum;
    
    
    function A3 (a,b) {
      this.a = a;
      this.b = b;
    }
    
    A3.prototype = {};
    A3.prototype.sum = sum;
    A3.prototype.iLoveChrome1 = function() {};
    A3.prototype.iLoveChrome2 = function() {};
    A3.prototype.iLoveChrome3 = function() {};
    A3.prototype.iLoveChrome4 = function() {};
    A3.prototype.iLoveChrome5 = function() {};
    A3.prototype.iLoveChrome6 = function() {};
    A3.prototype.iLoveChrome7 = function() {};
    A3.prototype.iLoveChrome8 = function() {};
    A3.prototype.iLoveChrome8 = function() {};
    A3.prototype.iLoveChrome9 = function() {};
    A3.prototype.iLoveChrome10 = function() {};
    A3.prototype.iLoveChrome11 = function() {};
    A3.prototype.iLoveChrome12 = function() {};
    A3.prototype.iLoveChrome13 = function() {};
    A3.prototype.iLoveChrome14 = function() {};
    A3.prototype.iLoveChrome15 = function() {};
    A3.prototype.iLoveChrome16 = function() {};
    A3.prototype.iLoveChrome17 = function() {};
    A3.prototype.iLoveChrome18 = function() {};
    A3.prototype.iLoveChrome19 = function() {};
    
    
    
    function A4 (a,b) {
      this.a = a;
      this.b = b;
    }
    
    A4.prototype = {
      sum : sum,
      iLoveChrome1 : function() {},
      iLoveChrome2 : function() {},
      iLoveChrome3 : function() {},
      iLoveChrome4 : function() {},
      iLoveChrome5 : function() {},
      iLoveChrome6 : function() {},
      iLoveChrome7 : function() {},
      iLoveChrome8 : function() {},
      iLoveChrome9 : function() {},
      iLoveChrome10 : function() {},
      iLoveChrome11 : function() {},
      iLoveChrome12 : function() {},
      iLoveChrome13 : function() {},
      iLoveChrome14 : function() {},
      iLoveChrome15 : function() {},
      iLoveChrome16 : function() {},
      iLoveChrome17 : function() {},
      iLoveChrome18 : function() {},
      iLoveChrome19 : function() {}
    };
    
    
    function B1 (a,b) {
      this.a = a;
      this.b = b;
    }
    
    B1.prototype = {
      constructor : B1,
      sum : sum,
      iLoveChrome1 : function() {},
      iLoveChrome2 : function() {},
      iLoveChrome3 : function() {},
      iLoveChrome4 : function() {},
      iLoveChrome5 : function() {},
      iLoveChrome6 : function() {},
      iLoveChrome7 : function() {},
      iLoveChrome8 : function() {},
      iLoveChrome9 : function() {},
      iLoveChrome10 : function() {},
      iLoveChrome11 : function() {},
      iLoveChrome12 : function() {},
      iLoveChrome13 : function() {},
      iLoveChrome14 : function() {},
      iLoveChrome15 : function() {},
      iLoveChrome16 : function() {},
      iLoveChrome17 : function() {},
      iLoveChrome18 : function() {},
      iLoveChrome19 : function() {}
    };
    
    
    function B2 (a,b) {
      this.a = a;
      this.b = b;
    }
    
    B2.prototype = {
      constructor : B2,
      sum : sum
    };
    
    
    var a1 = new A1(3,7);
    var a2 = new A2(3,7);
    var b1 = new B1(3,7);
    var b2 = new B2(3,7);
    var a3 = new A3(3,7);
    var a4 = new A4(3,7);

Test runner

Ready to run.

Testing in
TestOps/sec
a1
a1.sum();
ready
a2
a2.sum();
ready
b1
b1.sum();
ready
b2
b2.sum();
ready
calling a1 with b2
a1.sum.call(b2);
ready
calling b2 with a1
b2.sum.call(a1);
ready
calling A1 with b2
A1.prototype.sum.call(b2);
ready
calling B2 with a1
B2.prototype.sum.call(a1);
ready
a3
a3.sum();
ready
a4
a4.sum();
ready

Revisions

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