Abstract
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.
- O. Agesen. GC points in a threaded environment. Technical report, Sun Microsystems Laboratories, Palo Alto, California, 1998. URL http://dl.acm.org/citation. cfm?id=974974. Google Scholar
Digital Library
- B. Alpern, C. R. Attanasio, A. Cocchi, D. Lieber, S. Smith, T. Ngo, J. J. Barton, S. F. Hummel, J. C. Sheperd, and M. Mergen. Implementing Jalape˜no in Java. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Denver, Colorado, 1999. doi: 10. 1145/320384.320418. Google Scholar
Digital Library
- Apple. WebKit JavaScript Core. URL http://trac. webkit.org/wiki/JavaScriptCore.Google Scholar
- M. Arnold and D. Grove. Collecting and exploiting highaccuracy call graph profiles in virtual machines. In International Symposium on Code Generation and Optimization. IEEE Computer Society, 2005. doi: 10.1109/CGO.2005. Google Scholar
Digital Library
- 9.Google Scholar
- S. M. Blackburn and K. S. McKinley. Immix: A markregion garbage collector with space efficiency, fast collection, and mutator performance. In ACM SIGPLAN Conference on Programming Language Design and Implementation, Tucson, Arizona, 2008. doi: 10.1145/1375581.1375586. Google Scholar
Digital Library
- S. M. Blackburn, M. Hirzel, R. Garner, and D. Stefanovi´c. pjbb2005: The pseudoJBB benchmark. URL http: //users.cecs.anu.edu.au/˜steveb/research/ research-infrastructure/pjbb2005.Google Scholar
- S. M. Blackburn, R. Garner, C. Hoffman, A. M. Khan, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, M. Hirzel, A. Hosking, M. Jump, H. Lee, J. E. B. Moss, A. Phansalkar, D. Stefanovi´c, T. VanDrunen, D. von Dincklage, and B. Wiedermann. The DaCapo benchmarks: Java benchmarking development and analysis. In ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications, Portland, Oregon, 2006. Google Scholar
Digital Library
- doi: 10.1145/1167515.1167488.Google Scholar
- H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Software—Practice and Experience, 18(9), Sept. 1988. doi: 10.1002/spe.4380180902. Google Scholar
Digital Library
- C. Click, G. Tene, and M. Wolf. The pauseless GC algorithm. In ACM/USENIX International Conference on Virtual Execution Environments, Chicago, Illinoois, 2005. doi: 10.1145/ 1064979.1064988. Google Scholar
Digital Library
- X. Huang, S. M. Blackburn, K. S. McKinley, J. Moss, Z. Wang, and P. Cheng. The garbage collection advantage: Improving program locality. In ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications, Vancouver, Canada, 2004. doi: 10.1145/ 1028976.1028983. Google Scholar
Digital Library
- R. Jones, A. Hosking, and E. Moss. The Garbage Collection Handbook. Chapman & Hall, 2012. Google Scholar
Digital Library
- V. Kumar, D. Frampton, S. M. Blackburn, D. Grove, and O. Tardieu. Work-stealing without the baggage. In ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages and Applications, Tucson, Arizona, Oct. 2012. Google Scholar
Digital Library
- doi: 10.1145/2384616.2384639.Google Scholar
- OpenJDK Group. Hotspot VM. URL http://openjdk. java.net/groups/hotspot/.Google Scholar
- F. Pizlo, D. Frampton, and A. L. Hosking. Fine-grained adaptive biased locking. In International Conference on Principles and Practice of Programming in Java, Kongens Lyngby, Denmark, 2011. doi: 10.1145/2093157.2093184. Google Scholar
Digital Library
- SPEC. SPECjvm98, release 1.03, 1999. URL http:// www.spec.org/jvm98.Google Scholar
- SPECjbb2000. SPECjbb2000 (Java Business Benchmark) documentation. URL https://www.spec.org/ jbb2005/.Google Scholar
- J. M. Stichnoth, G.-Y. Lueh, and M. Cierniak. Support for garbage collection at every instruction in a Java compiler. In ACM SIGPLAN Conference on Programming Language Design and Implementation, Atlanta, Georgia, 1999. doi: 10. 1145/301618.301652. Google Scholar
Digital Library
- X. Yang, S. M. Blackburn, D. Frampton, and A. L. Hosking. Barriers reconsidered, friendlier still! In ACM SIGPLAN International Symposium on Memory Management, Beijing, China, June 2012. doi: 10.1145/2258996.2259004. Google Scholar
Digital Library
- X. Yang, S. M. Blackburn, and K. S. McKinley. Computer performance microscopy with SHIM. In International Symposium on Computer Architecture, Portland, Oregon, 2015. Google Scholar
Digital Library
- doi: 10.1145/2749469.2750401.Google Scholar
Index Terms
Stop and go: understanding yieldpoint behavior
Recommendations
Stop and go: understanding yieldpoint behavior
ISMM '15: Proceedings of the 2015 International Symposium on Memory ManagementYieldpoints 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 ...
Non-stop Haskell
ICFP '00: Proceedings of the fifth ACM SIGPLAN international conference on Functional programmingWe describe an efficient technique for incorporating Baker's incremental garbage collection algorithm into the Spineless Tagless G-machine on stock hardware. This algorithm eliminates the stop/go execution associated with bulk copying collection ...
A performance comparison between stop-the-world and multithreaded concurrent generational garbage collection for Java
PCC '02: Proceedings of the Performance, Computing, and Communications Conference, 2002. on 21st IEEE InternationalThe recent popularity of the Java programming language has brought automatic dynamic memory management (a.k.a., the garbage collection) into the mainstream. Traditional garbage collectors suffer from long garbage collection pauses (stop-the-world mark-...






Comments