Garbology: a study of how Java objects die

Garbology: a study of how Java objects die
复制标题

Garbology:研究 Java 对象如何死亡

DOI:
10.1145/3133850.3133854
复制
发表时间:
2017
期刊:
Onward! 2017
影响因子:
--
通讯作者:
Guyer, Samuel Z.
Guyer, Samuel Z.
中科院分区:
--
文献类型:
--
作者:
Veroy, Raoul L.;Guyer, Samuel Z.

文献摘要

参考文献

相似文献

在本文中,我们提出了一个Java程序如何处置对象的研究。与以前的工作对象的人口统计和生命周期模式,我们的目标是精确地描述的行动,导致对象变得遥不可及。我们使用最近开发的跟踪工具,称为大象跟踪,它可以在特定的方法中定位对象死亡,并告诉我们近端的原因。我们的分析集中在垃圾集群上:由于单个程序操作,一组连接的对象在同一时间变得不可访问。我们使用传统的功能,如大小,分配网站,和生命周期,并使用新的,如死亡的网站和死因,这些集群进行分类。然后,我们使用这些知识的垃圾集群在一个新的GC算法:集群感知垃圾收集(CAGC)algorithm.We目前的一组标准的基准测试,包括SPECJVM98,SPECjbb,和DaCapo的结果。我们确定了几种模式,可以通知新的收集器的设计或现有系统的调整。大多数垃圾簇都很小,这表明这些程序几乎总是以零碎的方式处理大型结构。此外,大多数集群在程序中只有十几个地方之一死亡。此外,这些死亡地点比对象寿命更稳定和可预测。最后,我们表明,CAGC算法可以在某些情况下提高GC性能。
In this paper we present a study of how Java programs dispose of objects. Unlike prior work on object demographics and lifetime patterns, our goal is to precisely characterize the actions that cause objects to become unreachable. We use a recently-developed tracing tool, called Elephant Tracks, which can localize object deaths within a specific method and tell us the proximal cause. Our analysis centers around garbage clusters: groups of connected objects that become unreachable at precisely the same time due to a single program action. We classify these clusters using traditional features, such as size, allocation site, and lifetime, and using new ones, such as death site and cause of death. We then use this knowledge about garbage clusters in a new GC algorithm: the Cluster Aware Garbage Collection (CAGC) algorithm.We present results for a set of standard benchmarks including SPECJVM98, SPECjbb, and DaCapo. We identify several patterns that could inform the design of new collectors or tuning of existing systems. Most garbage clusters are small, suggesting that these programs almost always dispose of large structures in a piecemeal fashion. In addition, most clusters die in one of only a dozen or so places in the program. Furthermore, these death sites are much more stable and predictable than object lifetimes. Finally we show that the CAGC algorithm can in certain cases improve GC performance.
利用关键对象机会主义收集旧对象
DOI: --
发表时间: 1991
期刊: Conference on Object-Oriented Programming Systems, Languages, and Applications
影响因子: --
作者:
Barry Hayes
通讯作者: Barry Hayes
DOI: --
发表时间: 2002
期刊: International Symposium on Mathematical Morphology and Its Application to Signal and Image Processing
影响因子: --
作者:
Martin Hirzel;Johannes Henkel;Amer Diwan;M. Hind
通讯作者: M. Hind
使用 Merlin 生成对象生命周期跟踪
DOI: --
发表时间: 2006
期刊: TOPL
影响因子: --
作者:
Matthew Hertz;S. Blackburn;J. E. B. Moss;Kathryn S. McKinley;D. Stefanovic
通讯作者: D. Stefanovic
Java 的预占权
DOI: --
发表时间: 2001
期刊: Conference on Object-Oriented Programming Systems, Languages, and Applications
影响因子: --
作者:
S. Blackburn;S. Singhai;Matthew Hertz;K. McKinley;J. E. B. Moss
通讯作者: J. E. B. Moss
SPECjvm98 Java 基准测试的分配行为研究
DOI: --
发表时间: 1999
期刊: European Conference on Object-Oriented Programming
影响因子: --
作者:
Sylvia Dieckmann;Urs Hölzle
通讯作者: Urs Hölzle