Stop and go: understanding yieldpoint behavior

Stop and go: understanding yieldpoint behavior
复制标题

DOI:
10.1145/2754169.2754187
复制
发表时间:
2015-06
期刊:
Proceedings of the 2015 International Symposium on Memory Management
影响因子:
--
通讯作者:
Yi Lin;Kunshan Wang;S. Blackburn;Antony Hosking;Michael Norrish
Yi Lin;Kunshan Wang;S. Blackburn;Antony Hosking;Michael Norrish
中科院分区:
其他
文献类型:
--
作者:
Yi Lin;Kunshan Wang;S. Blackburn;Antony Hosking;Michael Norrish

文献摘要

被引文献

相似文献

收益点对于实施高性能垃圾收集的语言至关重要,但是设计空间尚不清楚。收益点允许在执行中以明确定义的点中断运行的程序,促进确切的垃圾收集,有偏见的锁定,堆栈更换,分析和其他重要的虚拟机行为。在本文中,我们识别并评估了收益点的设计选择,包括先前无证件的设计和优化。我们确定的一种设计为低架空分析开辟了新的机会。我们测量执行收益点的频率,并建立一种评估常见案例执行时间开销的方法。我们还测量了中位数和最坏的情况。我们发现Java基准测试每秒执行约100m的收益点,其中大约1/20000。 VM上未能获得的收益点的平均执行时间开销我们使用的范围从2.5%到现代硬件的范围接近零,具体取决于设计,并且我们发现,设计人员在最差的情况下以最糟糕的情况为单位。该分析为垃圾收集器实施的一个关键但被忽视的方面提供了新的见解,并确定了非常低的间接费用分析的新优化和新的机会。
Yieldpoints are critical to the implementation of high performance garbage collected languages, yet the design space is not well understood. Yieldpoints allow a running program to be interrupted at well-defined points in its execution, facilitating exact garbage collection, biased locking, on-stack replacement, profiling, and other important virtual machine behaviors. In this paper we identify and evaluate yieldpoint design choices, including previously undocumented designs and optimizations. One of the designs we identify opens new opportunities for very low overhead profiling. We measure the frequency with which yieldpoints are executed and establish a methodology for evaluating the common case execution time overhead. We also measure the median and worst case time-to-yield. We find that Java benchmarks execute about 100M yieldpoints per second, of which about 1/20000 are taken. The average execution time overhead for untaken yieldpoints on the VM we use ranges from 2.5% to close to zero on modern hardware, depending on the design, and we find that the designs trade off total overhead with worst case time-to-yield. This analysis gives new insight into a critical but overlooked aspect of garbage collector implementation, and identifies a new optimization and new opportunities for very low overhead profiling.