Vector

JavaScript performance comparison

Revision 3 of this test case created by

Preparation code

<script src="https://ajax.googleapis.com/ajax/libs/mootools/1.3/mootools-yui-compressed.js"></script>

      
<script>
Benchmark.prototype.setup = function() {
  var Vector = new Class({
    initialize: function(x, y) {
      this.x = x;
      this.y = y;
    },
    add: function(b) {
      return new Vector(this.x+b.x, this.y+b.y);  
    }
  });
  
  function Vector2(x, y) {
    this.x = x;
    this.y = y;
  }
  
  Vector2.prototype.add = function(b) {
  	return new Vector2(this.x+b.x, this.y+b.y);
  },
  Vector2.prototype.addSelf = function(b){
    this.x += b.x;
    this.y += b.y;
  
    return this;
  };
  
  var Vector3 = {
  }
  Vector3.$ = function(x, y) {
  	return [x, y];
  }
  Vector3.add = function(a, b) {
  	return [a[0]+b[0], a[1]+b[1]];
  }

};
</script>

Preparation code output

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
Vector object
var vel = new Vector2(1, 0);
var vel2 = new Vector2(1, 1);
var velr = vel.add(vel2);
pending…
Static Vector
var vel = Vector3.$(1, 0);
var vel2 = Vector3.$(1, 1);
var velr = Vector3.add(vel, vel2);
pending…
Mootools Vector
var vel = new Vector(1, 0);
var vel2 = new Vector(1, 1);
var velr = vel.add(vel2);
pending…
Vector Object add to self
var vel = new Vector2(1, 0);
var vel2 = new Vector2(1, 1);
var velr = vel.addSelf(vel2);
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