私はActionScript 3で配列をクリアすることを検討してきました。
いくつかの方法が示唆しています:_array = [];
_(メモリリーク?)
他の人は言うでしょう:array.splice(0);
他にありましたら教えてください。どちらがより効率的ですか?
ありがとうございました。
_array.length = 0
_またはarray.splice()
は、全体的なパフォーマンスを最もよく発揮するようです。
array.splice(0);
はarray.splice(array.length - 1, 1);
よりも高速に実行されます
100要素の配列の場合(ミリ秒単位のベンチマーク、低いほど必要な時間が短くなります):
// best performance (benchmark: 1157)
array.length = 0;
// lower performance (benchmark: 1554)
array = [];
// even lower performance (benchmark: 3592)
array.splice(0);
Array.pop()とarray.splice(array.length-1、1)には重要な違いがあります。つまり、popは要素の値を返します。これは、次のような配列をクリアするときに便利な1ライナーに最適です。
while(myArray.length > 0){
view.removeChild(myArray.pop());
}
array.splice(0,array.length);
これは常に私にとってはかなりうまくいきましたが、プロファイラーで実行する機会はまだありませんでした