垃圾多久收集一次?
How often is garbage collected?
如果我理解正确的话,GC 是这样工作的:
MyClass.prototype.render = function(){
var largeArray = [];
for (var i = 0; i < 1000; i++) {
largeArray.push({
firstName: 'John',
lastName: 'Smith'
});
}
}
当调用 render()
时,largeArray
被标记为垃圾收集但不会立即被收集。
我很好奇,因为我的 phone 有一个锁屏小部件。这是一个在锁屏上显示 HTML 页面的浏览器。它有效,所以每次我加载锁屏时都会重新加载小部件。
问题是,每隔 ~5 次我打开锁屏 phone 就会重新启动到安全模式。似乎当我解锁 phone 时,小部件浏览器在垃圾收集可以 运行 之前关闭。听起来对吗?
Here's my widget. 在控制台中输出主要对象的大小。
参考这个link,你的问题不在垃圾收集器中,我认为你的代码中有些变量被创建并位于内存中并且从未被释放,最好查看这些链接以获得 js实践
如果我理解正确的话,GC 是这样工作的:
MyClass.prototype.render = function(){
var largeArray = [];
for (var i = 0; i < 1000; i++) {
largeArray.push({
firstName: 'John',
lastName: 'Smith'
});
}
}
当调用 render()
时,largeArray
被标记为垃圾收集但不会立即被收集。
我很好奇,因为我的 phone 有一个锁屏小部件。这是一个在锁屏上显示 HTML 页面的浏览器。它有效,所以每次我加载锁屏时都会重新加载小部件。
问题是,每隔 ~5 次我打开锁屏 phone 就会重新启动到安全模式。似乎当我解锁 phone 时,小部件浏览器在垃圾收集可以 运行 之前关闭。听起来对吗?
Here's my widget. 在控制台中输出主要对象的大小。
参考这个link,你的问题不在垃圾收集器中,我认为你的代码中有些变量被创建并位于内存中并且从未被释放,最好查看这些链接以获得 js实践