...
首页> 外文期刊>ACM Transactions on Programming Languages and Systems >An On-the-Fly Reference-Counting Garbage Collector for Java
【24h】

An On-the-Fly Reference-Counting Garbage Collector for Java

机译:Java即时引用计数垃圾收集器

获取原文
           

摘要

Reference-counting is traditionally considered unsuitable for multiprocessor systems. According to conventional wisdom, the update of reference slots and reference-counts requires atomic or synchronized operations. In this work we demonstrate this is not the case by presenting a novel reference-counting algorithm suitable for a multiprocessor system that does not require any synchronized operation in its write barrier (not even a compare-and-swap type of synchronization). A second novelty of this algorithm is that it allows eliminating a large fraction of the reference-count updates, thus, drastically reducing the reference-counting traditional overhead. This article includes a full proof of the algorithm showing that it is safe (does not reclaim live objects) and live (eventually reclaims all unreachable objects). We have implemented our algorithm on Sun Microsystems' Java Virtual Machine (JVM) 1.2.2 and ran it on a four-way IBM Netfinity 8500R server with 550-MHz Intel Pentium Ⅲ Xeon and 2 GB of physical memory. Our results show that the algorithm has an extremely low latency and throughput that is comparable to the stop-the-world mark and sweep algorithm used in the original JVM.
机译:传统上认为引用计数不适合多处理器系统。根据常规观点,参考时隙和参考计数的更新需要原子或同步操作。在这项工作中,我们通过提出一种适用于多处理器系统的新颖的引用计数算法来证明并非如此,该算法不需要在其写屏障中进行任何同步操作(甚至不包括比较交换类型的同步)。该算法的第二个新颖之处在于,它可以消除大部分的参考计数更新,从而大大减少了参考计数的传统开销。本文包括该算法的完整证明,表明该算法是安全的(不会回收活动对象)和活动的(最终回收所有无法访问的对象)。我们已经在Sun Microsystems的Java虚拟机(JVM)1.2.2上实现了算法,并在具有550 MHz Intel PentiumⅢXeon和2 GB物理内存的四路IBM Netfinity 8500R服务器上运行了该算法。我们的结果表明,该算法具有极低的延迟和吞吐量,可与原始JVM中使用的世界停止标记和清除算法相媲美。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号