[go: up one dir, main page]
More Web Proxy on the site http://driver.im/ skip to main content
10.1145/2754169.2754187acmconferencesArticle/Chapter ViewAbstractPublication PagesismmConference Proceedingsconference-collections
research-article
Open access

Stop and go: understanding yieldpoint behavior

Published: 14 June 2015 Publication History

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.
[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. 1145/320384.320418.
[3]
Apple. WebKit JavaScript Core. URL http://trac. webkit.org/wiki/JavaScriptCore.
[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.
[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.
[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.
[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.
[10]
H.-J. Boehm and M. Weiser. Garbage collection in an uncooperative environment. Software—Practice and Experience, 18(9), Sept. 1988.
[11]
C. Click, G. Tene, and M. Wolf. The pauseless GC algorithm. In ACM/USENIX International Conference on Virtual Execution Environments, Chicago, Illinoois, 2005. 1064979.1064988.
[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. 1028976.1028983.
[13]
R. Jones, A. Hosking, and E. Moss. The Garbage Collection Handbook. Chapman & Hall, 2012.
[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.
[16]
OpenJDK Group. Hotspot VM. URL http://openjdk. java.net/groups/hotspot/.
[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.
[18]
SPEC. SPECjvm98, release 1.03, 1999. URL http:// www.spec.org/jvm98.
[19]
SPECjbb2000. SPECjbb2000 (Java Business Benchmark) documentation. URL https://www.spec.org/ jbb2005/.
[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. 1145/301618.301652.
[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.
[22]
X. Yang, S. M. Blackburn, and K. S. McKinley. Computer performance microscopy with SHIM. In International Symposium on Computer Architecture, Portland, Oregon, 2015.

Cited By

View all
  • (2024)Reducing Write Barrier Overheads for Orthogonal PersistenceProceedings of the 17th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3687997.3695646(210-223)Online publication date: 17-Oct-2024
  • (2023)Flock: Towards Multitasking Virtual Machines for Function-as-a-ServiceIEEE Transactions on Computers10.1109/TC.2023.328875172:11(3153-3166)Online publication date: Nov-2023
  • (2021)Task parallel assembly language for uncompromising parallelismProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3460969(1064-1079)Online publication date: 19-Jun-2021
  • Show More Cited By

Index Terms

  1. Stop and go: understanding yieldpoint behavior

    Recommendations

    Comments

    Please enable JavaScript to view thecomments powered by Disqus.

    Information & Contributors

    Information

    Published In

    cover image ACM Conferences
    ISMM '15: Proceedings of the 2015 International Symposium on Memory Management
    June 2015
    156 pages
    ISBN:9781450335898
    DOI:10.1145/2754169
    • cover image ACM SIGPLAN Notices
      ACM SIGPLAN Notices  Volume 50, Issue 11
      ISMM '15
      November 2015
      156 pages
      ISSN:0362-1340
      EISSN:1558-1160
      DOI:10.1145/2887746
      Issue’s Table of Contents
    Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. Copyrights for third-party components of this work must be honored. For all other uses, contact the Owner/Author.

    Sponsors

    Publisher

    Association for Computing Machinery

    New York, NY, United States

    Publication History

    Published: 14 June 2015

    Check for updates

    Author Tags

    1. code patching
    2. man- aged code
    3. managed run-time
    4. safe points
    5. yieldpoints

    Qualifiers

    • Research-article

    Funding Sources

    Conference

    ISMM '15
    Sponsor:

    Acceptance Rates

    Overall Acceptance Rate 72 of 156 submissions, 46%

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)117
    • Downloads (Last 6 weeks)10
    Reflects downloads up to 18 Dec 2024

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Reducing Write Barrier Overheads for Orthogonal PersistenceProceedings of the 17th ACM SIGPLAN International Conference on Software Language Engineering10.1145/3687997.3695646(210-223)Online publication date: 17-Oct-2024
    • (2023)Flock: Towards Multitasking Virtual Machines for Function-as-a-ServiceIEEE Transactions on Computers10.1109/TC.2023.328875172:11(3153-3166)Online publication date: Nov-2023
    • (2021)Task parallel assembly language for uncompromising parallelismProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3460969(1064-1079)Online publication date: 19-Jun-2021
    • (2021)Frequent background polling on a shared thread, using light-weight compiler interruptsProceedings of the 42nd ACM SIGPLAN International Conference on Programming Language Design and Implementation10.1145/3453483.3454107(1249-1263)Online publication date: 19-Jun-2021
    • (2019)Featherlight Speculative Task ParallelismEuro-Par 2019: Parallel Processing10.1007/978-3-030-29400-7_28(391-404)Online publication date: 26-Aug-2019
    • (2018)Parallelization of dynamic languages: synchronizing built-in collectionsProceedings of the ACM on Programming Languages10.1145/32764782:OOPSLA(1-30)Online publication date: 24-Oct-2018
    • (2018)Fast-path loop unrolling of non-counted loops to enable subsequent compiler optimizationsProceedings of the 15th International Conference on Managed Languages & Runtimes10.1145/3237009.3237013(1-13)Online publication date: 12-Sep-2018
    • (2017)Layout LockACM SIGPLAN Notices10.1145/3155284.301875352:8(17-29)Online publication date: 26-Jan-2017
    • (2017)Model checking copy phases of concurrent copying garbage collection with various memory modelsProceedings of the ACM on Programming Languages10.1145/31338771:OOPSLA(1-26)Online publication date: 12-Oct-2017
    • (2017)Layout LockProceedings of the 22nd ACM SIGPLAN Symposium on Principles and Practice of Parallel Programming10.1145/3018743.3018753(17-29)Online publication date: 26-Jan-2017
    • Show More Cited By

    View Options

    View options

    PDF

    View or Download as a PDF file.

    PDF

    eReader

    View online with eReader.

    eReader

    Login options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media