更新ループで反復子を使用するたびに、メモリ リークの問題が発生します。たとえば、次のとおりです。
class Manager extends FlxState {
public var array: Array<Int>;
override public function create():Void {
array = new Array();
}
public override function update() {
super.update();
/////////////////////////////////////////////////////
//
// ISSUE IS HERE
// If for(item in array) line is present there's a memory
// issue.
//
/////////////////////////////////////////////////////
for(item in array) var noop:Int = 0 /* Do nothing */;
}
}
これを実行すると、永久に続く一定のメモリ増加が得られます。これは、HaxeFlixel のデバッガーでどのように見えるかです:
ただし、次のような単純なループを使用して反復すると:
for(i in (0...array.length)) var noop:Int = 0;
大丈夫だよ:
なぜこれが起こっているのですか?
ありがとう。