【发布时间】:2012-10-18 03:04:02
【问题描述】:
简单的问题,什么对垃圾收集器更好:
- 将对象添加到数组并将 null 分配给数组单元格
this.requests[i] = new NiceClass();
this.requests[i] = null;
- 创建简单变量并将 null 分配给该变量
var niceClass = new NiceClass();
niceClass = null;
我问是因为我想避免使用数组,因为在创建大量对象期间 - 尽管破坏了对对象的引用,因此垃圾收集器能够抓取不必要的对象 - 数组正在增长,所以我很好奇,是不是这里有必要还是只使用变量会更好?
【问题讨论】:
-
取决于垃圾收集器。并非所有的 GC 系统都使用引用计数,这就是
= null重置的东西派上用场的地方。 -
也许这可能会有所帮助:stackoverflow.com/questions/1947995/…
-
当您花费大量时间担心垃圾收集器时,我认为这表明设计存在问题。
-
...我也不确定这两种替代方案之间的有效区别是什么。将对象的引用存储在数组中,并将对象的引用存储在变量中;为什么这有关系?参考就是参考。
-
我正在使用一个大型的 Internet 应用程序,该应用程序具有良好的体系结构,但存在大量内存泄漏。我的任务是优化所有可以优化的东西。这就是为什么我要花很多时间担心 GC。
标签: javascript performance garbage-collection