Forum ActionScript 3.0 Speed Tests

Problems and discussions relating to ActionScript 3.0 here.

Speed Tests

Postby mfranzs » July 30th, 2011, 10:47 pm

Code:

C#:

Code: Select all
double start =(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds;
for (int i = 0; i < 10000000; i++)
{

}
Console.WriteLine((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds-start);

int[] someArray = new int[10000000];
start =(DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds;
for (int i = 0; i < 10000000; i++)
{
    someArray[i] = i * i;
}
Console.WriteLine((DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0)).TotalMilliseconds-start);


AS3:
Code: Select all
var start = (new Date()).getTime();
for (var i = 0; i < 10000000; i++)
{

}
trace((new Date()).getTime() - start);

var someArray = new Array();
start = (new Date()).getTime();
for (i = 0; i < 10000000; i++)
{
   someArray[i] = i * i;
}
trace((new Date()).getTime() - start);


Results:

C#
53.0029296875
85.0048828125


AS3
471
2853


Comparison:
C# 8.88 times faster
C# 33.56 times faster


...Am I missing something or is flash really just that slow!?
mfranzs
 
Posts: 98
Joined: August 29th, 2010, 3:27 am

Re: Speed Tests

Postby Benjaminsen » July 31st, 2011, 9:02 pm

You did not declare any types for any of your AS3 variables, forcing the VM to interpret your code as 100% dynamic. Try adding in some type declarations and use the Vector class instead of array and re-run your tests...
Benjaminsen
.IO
 
Posts: 1444
Joined: January 12th, 2010, 11:54 am
Location: Denmark

Re: Speed Tests

Postby mfranzs » July 31st, 2011, 10:54 pm

*headdesk*

Wow... it never occurred to me that strong typing could improve performance -.-

Any other tips? :D

//Without Strong Typing
473
4610
//With Strong Typing
181
3831


Code: Select all
var start = (new Date()).getTime();
for (var i = 0; i < 10000000; i++)
{

}
trace((new Date()).getTime() - start);

var someArray = new Array();
start = (new Date()).getTime();
for (i = 0; i < 10000000; i++)
{
   someArray[i] = i * i;
}
trace((new Date()).getTime() - start);


start = (new Date()).getTime();
for (var a:Number= 0; a < 10000000; a++)
{

}
trace((new Date()).getTime() - start);

var someArray2:Vector.<Number>  = new Vector.<Number>();
start = (new Date()).getTime();
for (a = 0; a < 10000000; a++)
{
   someArray2[a] = a * a;
}
trace((new Date()).getTime() - start);
mfranzs
 
Posts: 98
Joined: August 29th, 2010, 3:27 am


Return to ActionScript 3.0



cron