【发布时间】:2015-02-17 15:12:50
【问题描述】:
我正在构建一个使用 var 创建“关卡”对象的 javascript 游戏:
function start() {
var myGameLevel = new Level(2);
}
这个“Level()”对象有很多功能,主要是向 DOM 添加元素并使其具有交互性。简化:
function Level(i) {
var _difficulty = i;
this.init = function(){
jQuery("#container").append(...game elements here...);
jQuery("#button").on('click', function() {...});
}
}
我的问题:我如何知道在“start”函数中创建的 Level 对象是否已被垃圾回收?我的目标是只使用“var”变量,这样就没有外部引用。当 DOM 中的所有游戏元素都被清除后,我希望“关卡”对象会从内存中释放出来,但我怎么能确定呢?
【问题讨论】:
-
如果您使用的是 Chrome,您是否尝试过在调试器中进行内存分析?
-
好吧,我不知道要找什么?由于整个 Level 对象是匿名的? Chrome 调试器有很多屏幕、列表和选项。我在哪里可以找到我的“关卡”对象?
-
@Kokodoko 你有什么解决方法吗?
-
我并没有真正研究它,但您可以在 chrome 调试器中发现内存泄漏:如果您不断生成不被垃圾收集的对象,RAM 内存使用量将不断上升。
标签: javascript garbage-collection