I wrote JS equivalent of my test case in 4 ways.

function mgpoint1(x,y)
{
  this.x = x;
  this.y = y;
  this.getX = function()
  {
     return this.x;
  }

  this.getY = function()
  {
     return this.y;
  }
  this.getDimension = function()
  {
     return 2;
  }
  this.setCoordinates = function(x,y)
  {
     this.x = x;
     this.y = y;
  }
}

mgpoint2 is array version of mgpoint1.
mgpoint3 is prototype version of mgpoin1.
mgpoint4 is prototype version of mgpoint2.


function mgpoint3(x,y)
{
  this.x = x;
  this.y = y;
}

  mgpoint3.prototype.getX = function()
  {
     return this.x;
  }

  mgpoint3.prototype.getY = function()
  {
     return this.y;
  }
  mgpoint3.prototype.getDimension = function()
  {
     return 2;
  }
  mgpoint3.prototype.setCoordinates = function(x,y)
  {
     this.x = x;
     this.y = y;
  }

The test code is

var i;
var z = 0;
for(i=0; i < 1000000; ++i )
{
  var point = new mgpoint1(26,45);
  var x = point.getX();
  var y = point.getY();
  var dimension = point.getDimension();
  z = x + y + dimension;
}

Then I wrote another case for simple optimization in js.

function mgpoint5()
{
 this.x = 26;
 this.y = 45;
}

var i, x, y, point;
var z = 0;
for(i=0; i < 1000000; ++i )
{
  point = new mgpoint5();
  x = point.x;
  y = point.y;
  z = x + y + 2;
}



My results are a bit strange.
1 million times
(Chrome 14 results)
JS X-Y: mgpoint1 : 1021
JS Array: mgpoint2 : 1061
Proto X-Y: mgpoint3 : 310
Proto Array: mgpoint4 : 356
Optimized X-Y: mgpoint5 : 308

GWT X-Y: MGPoint2 : 31
GWT Array: MGPoint : 2327


1 million times
(Firefox 5 results)
JS X-Y: mgpoint1 : 1499
JS Array: mgpoint2 : 1732
Proto X-Y: mgpoint3 : 1166
Proto Array: mgpoint4 : 1379
Optimized X-Y: mgpoint5: 455

GWT X-Y: MGPoint2 : 342
GWT Array: MGPoint : 5613









On Oct 24, 7:21 pm, Thomas Broyer <t.bro...@gmail.com> wrote:
> Are you compiling with -XdisableCastChecking? That might make a difference.

-- 
You received this message because you are subscribed to the Google Groups 
"Google Web Toolkit" group.
To post to this group, send email to google-web-toolkit@googlegroups.com.
To unsubscribe from this group, send email to 
google-web-toolkit+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-web-toolkit?hl=en.

Reply via email to