Re: Array Performance
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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/google-web-toolkit?hl=en.
0 Comments:
Post a Comment
Subscribe to Post Comments [Atom]
<< Home