skip to main content
research-article
Open Access

Stop and go: understanding yieldpoint behavior

Published:14 June 2015Publication History
Skip Abstract Section

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.

References

  1. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  2. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  3. Apple. WebKit JavaScript Core. URL http://trac. webkit.org/wiki/JavaScriptCore.Google ScholarGoogle Scholar
  4. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  5. 9.Google ScholarGoogle Scholar
  6. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  7. 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 ScholarGoogle Scholar
  8. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  9. doi: 10.1145/1167515.1167488.Google ScholarGoogle Scholar
  10. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  11. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  12. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  13. R. Jones, A. Hosking, and E. Moss. The Garbage Collection Handbook. Chapman & Hall, 2012. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  15. doi: 10.1145/2384616.2384639.Google ScholarGoogle Scholar
  16. OpenJDK Group. Hotspot VM. URL http://openjdk. java.net/groups/hotspot/.Google ScholarGoogle Scholar
  17. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  18. SPEC. SPECjvm98, release 1.03, 1999. URL http:// www.spec.org/jvm98.Google ScholarGoogle Scholar
  19. SPECjbb2000. SPECjbb2000 (Java Business Benchmark) documentation. URL https://www.spec.org/ jbb2005/.Google ScholarGoogle Scholar
  20. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  21. 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 ScholarGoogle ScholarDigital LibraryDigital Library
  22. X. Yang, S. M. Blackburn, and K. S. McKinley. Computer performance microscopy with SHIM. In International Symposium on Computer Architecture, Portland, Oregon, 2015. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. doi: 10.1145/2749469.2750401.Google ScholarGoogle Scholar

Index Terms

  1. Stop and go: understanding yieldpoint behavior

    Recommendations

    Comments

    Login options

    Check if you have access through your login credentials or your institution to get full access on this article.

    Sign in

    Full Access

    PDF Format

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader
    About Cookies On This Site

    We use cookies to ensure that we give you the best experience on our website.

    Learn more

    Got it!