ABSTRACT
Pretenuring can reduce copying costs in garbage collectors by allocating long-lived objects into regions that the garbage collector with rarely, if ever, collect. We extend previous work on pretenuring as follows. (1) We produce pretenuring advice that is neutral with respect to the garbage collector algorithm and configuration. We thus can and do combine advice from different applications. We find that predictions using object lifetimes at each allocation site in Java prgroams are accurate, which simplifies the pretenuring implementation. (2) We gather and apply advice to applications and the Jalapeño JVM, a compiler and run-time system for Java written in Java. Our results demonstrate that building combined advice into Jalapeño from different application executions improves performance regardless of the application Jalapeño is compiling and executing. This build-time advice thus gives user applications some benefits of pretenuring without any application profiling. No previous work pretenures in the run-time system. (3) We find that application-only advice also improves performance, but that the combination of build-time and application-specific advice is almost always noticeably better. (4) Our same advice improves the performance of generational and Older First colleciton, illustrating that it is collector neutral.
- 1.B. Alpern, D. Attanasio, J. J. Barton, M. G. Burke, P.Cheng, J.-D. Choi, A. Cocchi, S. J. Fink, D. Grove, M. Hind, S. F. Hummel, D. Lieber, V. Litvinov, M. Mergen, T. Ngo, J. R. Russell, V. Sarkar, M. J. Serrano, J. Shepherd, S. Smith, V. C. Sreedhar, H. Srinivasan, and J. Whaley. The Jalapeno virtual machine. IBM System Journal, 39(1), Feb. 2000. Google ScholarDigital Library
- 2.B. Alpern, D. Attanasio, J. J. Barton, A. Cocchi, S. F. Hummel, D. Lieber, M. Mergen, T. Ngo, J. Shepherd, and S. Smith. Implementing Jalapeno in java. In ACM Conference Proceedings on Object-Oriented Programming Systems, Languages, and Applications, Denver, CO, Nov. 1999. Google ScholarDigital Library
- 3.A. W. Appel. Simple generational garbage collection and fast allocation. Software-Practice and Experience, 19(2):171-183, 1989. Google ScholarDigital Library
- 4.D. A. Barrett and B. Zorn. Using lifetime predictors to improve memory allocation performance. In Proceedings of the ACM SIGPLAN'93 Conference on Programming Language Design and Implementation (PLDI), Albuquerque, New Mexico, June 23-25, 1993, pages 187-196, June 1993. Google ScholarDigital Library
- 5.D. A. Barrett and B. Zorn. Garbage collection using a dynamic threatening boundary. In Proceedings of the ACM SIGPLAN'95 Conference on Programming Language Design and Implementation (PLDI), La Jolla, California, June 18-21, 1995, pages 301-314, June 1995. Google ScholarDigital Library
- 6.S. J. Baylor, M. Devarakonda, S. J. Fink, E. Gluzberg, M. Kalantar, P. Muttineni, E. Barsness, R. Arora, R. Dimpsey, and S. J. Munroe. Java server benchmarks. IBM System Journal, 39(1), Feb. 2000. Google ScholarDigital Library
- 7.P. J. Caudill and A. Wirfs-Brock. A third-generation Smalltalk-80 implementation. In OOPSLA'86 ACM Conference on Object-Oriented Programming Systems, Languages, and Applications, pages 119-130, 1986. Google ScholarDigital Library
- 8.P. Cheng, R. Harper, and P. Lee. Generational stack collection and profile-driven pretenuring. In Proceedings of the ACM SIGPLAN '98 Conference on Programming Language Design and Implementation (PLDI), Montreal, Canada, 17-19 June 1998, pages 162-173, May 1998. Google ScholarDigital Library
- 9.D. R. Hanson. Fast allocation and deallocation of memory based on object liftimes. Software-Practice and Experience, 20(1):5-12, Jan. 1990. Google ScholarDigital Library
- 10.T. L. Harris. Dynamic adaptive pre-tenuring. In Proceedings of the International Symposium On Memory Management (ISMM), Minneapolis, MN U.S.A, 15-16 October, 2000, pages 127-136. ACM, 2000. Google ScholarDigital Library
- 11.M. Hicks, L. Hornof, J. T. Moore, and S. Nettles. A study of Large Object Spaces. In ISMM'98 Proceedings of the First International Symposium on Memory Management, pages 138-145. ACM, 1998. Google ScholarDigital Library
- 12.H. B. Lee and B. G. Zorn. BIT: A tool for instrumenting java bytecodes. In USENIX Symposium on Internet Technologies and Systems, 1997. Google ScholarDigital Library
- 13.A. Rogers, M. C. Carlisle, J. H. Reppy, and L. J. Hendren. Supporting dynamic data structures on distributed-memory machines. ACM Transactions on Programming Languages and Systems (TOPLAS), 17(2):233-263, Mar. 1995. Google ScholarDigital Library
- 14.M. L. Seidl and B. G. Zorn. Segregating heap objects by reference behavior and lifetime. In ASPLOS-VIII Proceedings of the 8th International Conference on Architectural Support for Programming Languages and Operating Systems, San Jose, California, October 3-7, 1998, pages 12-23, Nov. 1998. Google ScholarDigital Library
- 15.D. Stefanovic, K. S. McKinley, and J. E. B. Moss. Age-based garbage collection. In Proceedings of the 1999 ACM SIGPLAN Conference on Object-Oriented Programming Systems, Languages & Applications (OOPSLA '99), Denver, Colorado, November 1-5, 1999, pages 379-381, Nov. 1999. Google ScholarDigital Library
- 16.D. Tarditi and A. Diwan. Measuring the cost of storage management. Lisp and Symbolic Computation, 9(4), Dec. 1996. Google ScholarDigital Library
- 17.D. Ungar. Generation scavenging: A non-disruptive high performance storage reclamation algorithm. In Proceedings of the ACM SIGSOFT/SIGPLAN Software Engineering Symposium on Practical Software Development Environments, Pittsburgh, Pennsylvania, April 23-25, 1984., pages 157-167, May 1984. Google ScholarDigital Library
- 18.D. Ungar and F. Jackson. Tenuring policies for generation-based storage reclamation. In N. K. Meyrowitz, editor, Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA'88), September 25-30, 1988, San Diego, California, Proceedings, pages 1-17, Nov. 1988. Google ScholarDigital Library
- 19.D. Ungar and F. Jackson. An adaptive tenuring policy for generation scavengers. ACM Transactions on Programming Languages and Systems (TOPLAS), 14(1):1-27, 1992. Google ScholarDigital Library
- 20.B. Zorn. Comparative Performance Evaluation of Garbage Collection Algorithms. PhD thesis, Computer Science Dept., University of California, Berkeley, Dec. 1989. Available as Technical Report UCB/CSD 89/544. Google ScholarDigital Library
Index Terms
- Pretenuring for Java
Recommendations
NG2C: pretenuring garbage collection with dynamic generations for HotSpot big data applications
ISMM 2017: Proceedings of the 2017 ACM SIGPLAN International Symposium on Memory ManagementBig Data applications suffer from unpredictable and unacceptably high pause times due to Garbage Collection (GC). This is the case in latency-sensitive applications such as on-line credit-card fraud detection, graph-based computing for analysis on ...
Pretenuring for Java
Pretenuring can reduce copying costs in garbage collectors by allocating long-lived objects into regions that the garbage collector with rarely, if ever, collect. We extend previous work on pretenuring as follows. (1) We produce pretenuring advice that ...
Profile-based pretenuring
Pretenuring can reduce copying costs in garbage collectors by allocating long-lived objects into regions that the garbage collector will rarely, if ever, collect. We extend previous work on pretenuring as follows: (1) We produce pretenuring advice that ...
Comments