Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
article

Java without the coffee breaks: a nonintrusive multiprocessor garbage collector

Published: 01 May 2001 Publication History

Abstract

The deployment of Java as a concurrent programming language has created a critical need for high-performance, concurrent, and incremental multiprocessor garbage collection. We present the Recycler, a fully concurrent pure reference counting garbage collector that we have implemented in the Jalapeño Java virtual machine running on shared memory multiprocessors.
While a variety of multiprocessor collectors have been proposed and some have been implemented, experimental data is limited and there is little quantitative basis for comparison between different algorithms. We present measurements of the Recycler and compare it against a non-concurrent but parallel load-balancing mark-and-sweep collector (that we also implemented in Jalapeño), and evaluate the classical tradeoff between response time and throughput.
When processor or memory resources are limited, the Recycler runs at about 90% of the speed of the mark-and-sweep collector. However, with an extra processor to run collection and with a moderate amount of memory headroom, the Recycler is able to operate without ever blocking the mutators and achieves a maximum measured mutator delay of only 2.6 milliseconds for our benchmarks. End-to-end execution time is usually within 5%.

References

[1]
ALPERN, B., ET AL. Implementing Jalapeno in Java. In Conference on Object-Oriented Programming, Systems, Languages, and Applications (Oct. 1999). SIGPLAN Notices, 34, 10, 314-324.
[2]
APPEL, A. W., ELLIS, J. R., AND LI, K. Real-time concurrent collection on stock multiprocessors. In Proceedings of the SIGPLAN Conference on Programming Language Design and Implementation (Atlanta, Georgia, June 1988), ACM Press, New York, New York. SIGPLAN Notices, 23, 7 (July), 11-20.
[3]
ARNOLD, M., FINK, S., GROVE, D., M.HIND, AND SWEENEY, P. Adaptive optimization in the Jalapeno JVM. pp. 47-65.
[4]
BACON, D. F., KOLODNER, H., NATHANIEL, R., PE- TRANK, E., AND RAJAN, V. T. Strongly-connected component algorithms for concurrent cycle collection. Tech. rep., IBM T.J. Watson Research Center and IBM Haifa Scientific Center, Apr. 2001.
[5]
BACON, D. F., AND RAJAN, V. T. Concurrent cycle collection in reference counted systems. In European Conference on Object-Oriented Programming (Budapest, Hungary, June 2001), J. L. Knudsen, Ed., vol. 2072 of Lecture Notes in Computer Science, Springer-Verlag.
[6]
BOBROW, D. G. Managing re-entrant structures using reference counts. ACM Trans. Program. Lang. Syst. 2, 3 (July 1980), 269-273.
[7]
BOEHM, H. Personal communication. Hewlett-Packard Laboratories, 2000.
[8]
CHENG, P., AND BLELLOCH, G. A parallel, real-time garbage collector. In Proc. of the SIGPLAN Conference on Programming Language Design and Implementation (Snowbird, Utah, June 2001). SIGPLAN Notices, 36, 5 (May).
[9]
CHENG, P., HARPER, R., AND LEE, P. Generational stack collection and profile-driven pretenuring. In Proc. of the Conference on Programming Language Design and Implementation (June 1998). SIGPLAN Notices, 33,6,162-173.
[10]
CHRISTOPHER, T. W. Reference count garbage collection. Software - Practice and Experience 14, 6 (June 1984), 503- 507.
[11]
COLLINS, G. E. A method for overlapping and erasure of lists. Commun. ACM 3, 12 (Dec. 1960), 655-657.
[12]
DETREVILLE, J. Experience with concurrent garbage collectors for Modula-2+. Tech. Rep. 64, DEC Systems Research Center, Aug. 1990.
[13]
DEUTSCH, L. P., AND BOBROW, D. G. An efficient incremental automatic garbage collector. Commun. ACM 19,7 (July 1976), 522-526.
[14]
DIJKSTRA, E. W., LAMPORT, L., MARTIN, A. J., SCHOLTEN, C. S., AND STEFFENS, E. F. M. On-the-fly garbage collection: An exercise in cooperation. In Hierarchies and Interfaces, F. L. Bauer et al., Eds., vol. 46 of Lecture Notes in Computer Science. 1976, pp. 43-56.
[15]
DOLIGEZ, D., AND GONTHIER, G. Portable, unobtrusive garbage collection for multiprocessor systems. In Conf. Record of the Twenty-First ACM Symposium on Principles of Programming Languages (Jan. 1994), pp. 70-83.
[16]
DOLIGEZ, D., AND LEROY, X. A concurrent generational garbage collector for a multi-threaded implementation of ML. In Conf. Record of the Twentieth ACM Symposium on Principles of Programming Languages (Jan. 1993), pp. 113-123.
[17]
DOMANI, T., KOLODNER, E. K., AND PETRANK, E. A generational on-the-fly garbage collector for Java. In Proc. of the SIGPLAN Conference on Programming Language Design and Implementation (June 2000). SIGPLAN Notices, 35, 6, 274-284.
[18]
HUELSBERGEN, L., AND LARUS, J. R. A concurrent copying garbage collector for languages that distinguish (im)mutable data. In Proc. of the Fourth ACM Symposium on Principles and Practice of Parallel Programming (May 1993). SIGPLAN Notices, 28, 7 (July), 73-82.
[19]
HUELSBERGEN, L., AND WINTERBOTTOM, P. Very concurrent mark-&-sweep garbage collection without fine-grain synchronization. In Proc. of the ACMSIGPLAN International Symposium on Memory Management (Mar. 1999). SIGPLAN Notices, 34, 3, 166-174.
[20]
JONES, R., AND LINS, R. Garbage Collection. John Wiley and Sons, 1996.
[21]
KUNG, H. T., AND SONG, S. W. An efficient parallel garbage collection system and its correctness proof. In IEEE Symposium on Foundations of Computer Science (1977), pp. 120-131.
[22]
LAMPORT, L. Garbage collection with multiple processes: an exercise in parallelism. In Proc. of the 1976 International Conference on Parallel Processing (1976), pp. 50-54.
[23]
LINS, R. D. Cyclic reference counting with lazy mark-scan. Inf. Process. Lett. 44, 4 (Dec. 1992), 215-220.
[24]
LINS, R. D. A multi-processor shared memory architecture for parallel cyclic reference counting. Microprocessing and Microprogramming 35, 1-5 (Sept. 1992), 563-568. Proceedings of the 18th EUROMICRO Conference (Paris, France).
[25]
MART~NEZ, A. D., WACHENCHAUZER, R., AND LINS, R. D. Cyclic reference counting with local mark-scan. Inf. Process. Lett. 34, 1 (1990), 31-35.
[26]
MCCARTHY, J. Recursive functions of symbolic expressions and their computation by machine. Commun. ACM 3 (1960), 184-195.
[27]
NETTLES, S., AND O'TOOLE, J. Real-time garbage collection. In Proc. of the SIGPLAN Conference on Programming Language Design and Implementation (June 1993). SIGPLAN Notices, 28, 6, 217-226.
[28]
RODRIGUES, H. C. C. D., AND JONES, R. E. Cyclic distributed garbage collection with group merger. In Proc. of the Twelfth European Conference on Object-Oriented Programming (Brussels, July 1998), E. Jul, Ed., vol. 1445 of Lecture Notes in Computer Science, Springer-Verlag, pp. 249-273.
[29]
ROVNER, P. On adding garbage collection and runtime types to a strongly-typed, statically-checked, concurrent language. Tech. Rep. CSL-84-7, Xerox Palo Alto Research Center, July 1985.
[30]
STEELE, G. L. Multiprocessing compactifying garbage collection. Commun. ACM 18, 9 (Sept. 1975), 495-508.
[31]
WILSON, P. R., JOHNSTONE, M. S., NEELY, M., AND BOLES, D. Dynamic storage allocation: A survey and critical review. In Proceedings of International Workshop on Memory Management (Sept. 1995).

Cited By

View all
  • (2023)A Comprehensive Study on Different Optimizations of Pure Reference Counting Garbage Collectors2023 International Conference on Computational Intelligence, Networks and Security (ICCINS)10.1109/ICCINS58907.2023.10450100(1-6)Online publication date: 22-Dec-2023
  • (2019)An Analysis of Holistic Tail Latency Behaviors of Java Microservices2019 IEEE 21st International Conference on High Performance Computing and Communications; IEEE 17th International Conference on Smart City; IEEE 5th International Conference on Data Science and Systems (HPCC/SmartCity/DSS)10.1109/HPCC/SmartCity/DSS.2019.00104(697-705)Online publication date: Aug-2019
  • (2015)MjölnirProceedings of the 3rd Workshop on Interactions of NVM/FLASH with Operating Systems and Workloads10.1145/2819001.2819006(1-10)Online publication date: 4-Oct-2015
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGPLAN Notices
ACM SIGPLAN Notices  Volume 36, Issue 5
May 2001
330 pages
ISSN:0362-1340
EISSN:1558-1160
DOI:10.1145/381694
Issue’s Table of Contents
  • cover image ACM Conferences
    PLDI '01: Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
    June 2001
    331 pages
    ISBN:1581134142
    DOI:10.1145/378795
Permission to make digital or hard copies of all or part 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 components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from [email protected]

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 01 May 2001
Published in SIGPLAN Volume 36, Issue 5

Check for updates

Qualifiers

  • Article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)24
  • Downloads (Last 6 weeks)3
Reflects downloads up to 16 Oct 2024

Other Metrics

Citations

Cited By

View all
  • (2023)A Comprehensive Study on Different Optimizations of Pure Reference Counting Garbage Collectors2023 International Conference on Computational Intelligence, Networks and Security (ICCINS)10.1109/ICCINS58907.2023.10450100(1-6)Online publication date: 22-Dec-2023
  • (2019)An Analysis of Holistic Tail Latency Behaviors of Java Microservices2019 IEEE 21st International Conference on High Performance Computing and Communications; IEEE 17th International Conference on Smart City; IEEE 5th International Conference on Data Science and Systems (HPCC/SmartCity/DSS)10.1109/HPCC/SmartCity/DSS.2019.00104(697-705)Online publication date: Aug-2019
  • (2015)MjölnirProceedings of the 3rd Workshop on Interactions of NVM/FLASH with Operating Systems and Workloads10.1145/2819001.2819006(1-10)Online publication date: 4-Oct-2015
  • (2015)FACADEACM SIGARCH Computer Architecture News10.1145/2786763.269434543:1(675-690)Online publication date: 14-Mar-2015
  • (2015)Section-Based Program Analysis to Reduce Overhead of Detecting Unsynchronized Thread CommunicationACM Transactions on Architecture and Code Optimization10.1145/276645112:2(23:1-23:26)Online publication date: 24-Jun-2015
  • (2015)Locality-Aware Work Stealing Based on Online Profiling and Auto-Tuning for Multisocket Multicore ArchitecturesACM Transactions on Architecture and Code Optimization10.1145/276645012:2(1-24)Online publication date: 8-Jul-2015
  • (2014)Allocation folding based on dominanceACM SIGPLAN Notices10.1145/2775049.260299449:11(15-24)Online publication date: 12-Jun-2014
  • (2014)Concurrent, parallel garbage collection in linear timeACM SIGPLAN Notices10.1145/2775049.260299049:11(47-58)Online publication date: 12-Jun-2014
  • (2014)Concurrent, parallel garbage collection in linear timeProceedings of the 2014 international symposium on Memory management10.1145/2602988.2602990(47-58)Online publication date: 12-Jun-2014
  • (2012)A Fully Concurrent Garbage CollectorRecent Advances in Computer Science and Information Engineering10.1007/978-3-642-25789-6_50(343-363)Online publication date: 24-Jan-2012
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media