actionscript-3 flex flex3

actionscript 3 - As3-¿Cómo borrar una matriz de manera eficiente?



actionscript-3 flex (5)

He estado buscando borrar una matriz en ActionScript 3.

Algunos métodos sugieren: array = []; (¿Pérdida de memoria?)

Otro diría: array.splice(0);

Si tiene otra, por favor comparta. ¿Cuál es el más eficiente?

Gracias.


Hay una diferencia clave entre array.pop () y array.splice (array.length - 1, 1) que es que pop devolverá el valor del elemento. Esto es ideal para prácticos forros uno cuando se limpia una matriz como:

while(myArray.length > 0){ view.removeChild(myArray.pop()); }


Me pregunto por qué quieres borrar el arreglo de esa manera. borrar todas las referencias a esa misma matriz lo hará disponible para la recolección de basura. array = [] lo hará, si array es la única referencia a la array . si no es así, quizás no deberías estar emtpying (?)

también, tenga en cuenta que las''Arrays aceptan cadenas como claves. tanto el empalme como la duración operan únicamente en claves enteras, por lo que no tendrán efecto en las claves de cadena.

btw .: array.splice(array.length - 1, 1); es equivalente a array.pop();


Para una matriz con 100 elementos (puntos de referencia en ms, cuanto menor sea el tiempo necesario):

// best performance (benchmark: 1157) array.length = 0; // lower performance (benchmark: 1554) array = []; // even lower performance (benchmark: 3592) array.splice(0);


array.length = 0 o array.splice() parece funcionar mejor para el rendimiento general.

array.splice(0); funcionará más rápido que array.splice(array.length - 1, 1);


array.splice(0,array.length);

esto siempre ha funcionado bastante bien para mí, pero no he tenido la oportunidad de ejecutarlo a través del generador de perfiles aún