【发布时间】:2009-08-09 03:27:05
【问题描述】:
有没有人研究过创建和垃圾收集 Java WeakReference 对象所涉及的运行时成本?多线程应用程序是否存在任何性能问题(例如争用)?
编辑:显然,实际答案将取决于 JVM,但也欢迎进行一般性观察。
编辑 2:如果有人对性能进行了一些基准测试,或者可以指出一些基准测试结果,那将是理想的。 (抱歉,赏金已过期……)
【问题讨论】:
-
显然这将取决于 JDK 实现,Sun vs IBM vs JRockit 等。
-
Goetz 的一篇文章中的回答开始:在每次垃圾回收时,必须构造一个活动引用对象列表,并且必须适当处理每个引用,这增加了一些- 每次收集的引用开销,无论当时是否正在收集所指对象。引用对象本身会受到垃圾回收的影响,并且可以在所指对象之前被回收,在这种情况下它们不会入队。
标签: java garbage-collection weak-references