【问题标题】:javascript use delete or rely on garbage collection?javascript 使用删除还是依赖垃圾收集?
【发布时间】:2012-04-09 12:32:10
【问题描述】:

这是我的 Javascript 代码的对象和全局命名空间。

Users.Cache.data = { x:'1', y:'2', z:'3'};

如果我想清除数据中的所有条目,我有两种方法:

1) Users.Cache.data = {}; // Garbage Collection 负责将其从内存中删除。

2) for(i in Users.Cache.data){ delete(Users.Cache.data[i]; }

如果任何特定方法更好,任何人都可以发表评论:将这些作为标准: a)内存泄漏(看起来都没有内存泄漏的问题) b) 性能。

【问题讨论】:

标签: javascript memory-leaks garbage-collection javascript-objects performance


【解决方案1】:

其实,使用delete还是依赖垃圾回收;它只会为 GC 做更多的工作。

调用delete x.y 不会释放任何内存;它只是清除了x 对y 的引用。
如果y 没有其他引用,它将变为无根并最终进行垃圾回收。

您的第二个选项最终会为 GC 创建更多无根引用。
(请注意,我实际上并没有测量任何东西)

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 2013-01-26
  • 2011-07-24
  • 2012-03-24
  • 2012-02-09
相关资源
最近更新 更多