每当我在更新循环中使用迭代器时,我都会遇到内存泄漏问题。例如,这里:
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;
没事的:
为什么会发生这种情况,我做错了什么?
谢谢。