この問題に関するすべての既知のブログにもかかわらず、私はいつもいくつかの結果を疑っています。私の個人的なテストは、よく言われた標準が最良ではないことを示しています。Actionscriptのループでの変数宣言のパフォーマンス3
その範囲に近いそれらを維持し、それが速い方法で行くことができるようにすること、ループ内の変数を宣言するが、より多くのメモリを割り当てるか、メモリの割り当てを保存して、反復する処理を高めるためにスコープに対して外で宣言遠くのインスタンスで。
私の結果は、方法Bがより速く(時には)、これについての背景を知りたいことを示しています。
結果はさまざまで、裕福な教祖でもありません。
あなたはそれについてどう思いますか?
方法
var object:Object = new Object();
var loop:int = 100000
for (var i:int = 0; i < loop; i++)
{
object = new Object();
object.foo = foo;
object.bar = bar;
}
OR
方法B
var loop:int = 100000
for (var i:int = 0; i < loop; i++)
{
var object:Object = new Object()
object.foo = foo;
object.bar = bar;
}
彼らが再現性、有効であるかどうかを確認するために行わ*実際の*テストを見て、アサートされているかを示すために興味深いものになるだろう。マイクロベンチマークを正しく取得するのは難しいです(上記のスニペットは適切ではありません)。一般的に、inconsequentail入れ子のスコープ内の変数を宣言するための引数(例:*ネストされた関数*)と[[スコープ]]チェーンを検索避けるために、それらに値を割り当てるが、それは*異なる*であるとはいえ、いくつかは、* *あり新しい[[スコープ]]が必要なケース。 –
方法Bの方が新しい方法が1つ少ないので、方法Bは高速です。ここに時間を費やしているのは新しい声明です。 –