Use a classe Vector em vez da classe Array, sempre que possível.
A classe Vector permite acesso mais rápido para leitura e gravação do que a classe Array.
Um simples benchmark mostra os benefícios da classe Vector em relação à classe Array. O código a seguir mostra um benchmark da classe Array:
var coordinates:Array = new Array();
var started:Number = getTimer();
for (var i:int = 0; i< 300000; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 107
O código a seguir mostra um benchmark da classe Vector:
var coordinates:Vector.<Number> = new Vector.<Number>();
var started:Number = getTimer();
for (var i:int = 0; i< 300000; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 72
O exemplo pode ser otimizado ainda mais por meio da atribuição de um comprimento específico ao vetor e da configuração de seu comprimento como fixo:
// Specify a fixed length and initialize its length
var coordinates:Vector.<Number> = new Vector.<Number>(300000, true);
var started:Number = getTimer();
for (var i:int = 0; i< 300000; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 48
Caso o tamanho do vetor não seja definido antes, o tamanho aumenta quando o vetor estiver sem espaço. Cada vez que o tamanho do vetor aumenta, um novo bloco de memória é alocado. O conteúdo atual do vetor é copiado para o novo bloco de memória. Esta alocação e cópia extra de dados diminuem o desempenho. O código acima é otimizado ao especificar o tamanho inicial do vetor. No entanto, o código não está otimizado para manutenção. Para otimizar a mantenabilidade também, guarde o valor reutilizado em uma constante:
// Store the reused value to maintain code easily
const MAX_NUM:int = 300000;
var coordinates:Vector.<Number> = new Vector.<Number>(MAX_NUM, true);
var started:Number = getTimer();
for (var i:int = 0; i< MAX_NUM; i++)
{
coordinates[i] = Math.random()*1024;
}
trace(getTimer() - started);
// output: 47
Utilize as APIs de objeto Vector, sempre que possível, já que elas costumam ser executadas mais rapidamente.