Abstract
Garbage collection may benefit greatly from knowledge about program behavior, but most managed languages do not provide means for the programmer to deliver such knowledge. In this work we propose a very simple interface that requires minor programmer effort and achieves substantial performance and scalability improvements. In particular, we focus on the common use of data structures or collections for organizing data on the heap. We let the program notify the collector which classes represent nodes of data structures and also when such nodes are being removed from their data structures. The data-structure aware (DSA) garbage collector uses this information to improve performance, locality, and load balancing. Experience shows that this interface requires a minor modification of the application. Measurements show that for some significant benchmarks this interface can dramatically reduce the time spent on garbage collection and also improve the overall program performance.
- E. E. Aftandilian and S. Z. Guyer. Gc assertions: using the garbage collector to check heap properties. In PLDI, pages 235–244, 2009. Google Scholar
Digital Library
- B. Alpern, C. R. 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 Systems Journal, 39(1):211– 238, 2000. Google Scholar
Digital Library
- K. Barabash and E. Petrank. Tracing garbage collection on highly parallel platforms. In ISMM, pages 1–10. ACM, 2010. Google Scholar
Digital Library
- K. Barabash, O. Ben-Yitzhak, I. Goft, E. K. Kolodner, V. Leikehman, Y. Ossia, A. Owshanko, and E. Petrank. A parallel, incremental, mostly concurrent garbage collector for servers. ACM Transactions on Programming Languages and Systems, 27(6):1097–1146, 2005. Google Scholar
Digital Library
- S. M. Blackburn and K. S. McKinley. Ulterior reference counting: Fast garbage collection without a long wait. In OOPSLA, volume 38, pages 344–358. ACM, 2003. Google Scholar
Digital Library
- S. M. Blackburn and K. S. McKinley. Immix: a mark-region garbage collector with space efficiency, fast collection, and mutator performance. In PLDI, volume 43, pages 22–32. ACM, 2008. Google Scholar
Digital Library
- S. M. Blackburn, R. Garner, C. Hoffmann, A. M. Khang, K. S. McKinley, R. Bentzur, A. Diwan, D. Feinberg, D. Frampton, S. Z. Guyer, et al. The dacapo benchmarks: Java benchmarking development and analysis. In ACM Sigplan Notices, volume 41, pages 169–190. ACM, 2006. Google Scholar
Digital Library
- D. Buytaert, K. Venstermans, L. Eeckhout, and K. De Bosschere. Gch: Hints for triggering garbage collections. In Transactions on High-Performance Embedded Architectures and Compilers I, pages 74–94. Springer, 2007. Google Scholar
Digital Library
- S. Cherem and R. Rugina. Compile-time deallocation of individual objects. In ISMM, pages 138–149. ACM, 2006. Google Scholar
Digital Library
- J. E. Cook, A. L. Wolf, and B. G. Zorn. A highly effective partition selection policy for object database garbage collection. Transactions on Knowledge and Data Engineering, 10 (1):153–172, 1998. Google Scholar
Digital Library
- D. Detlefs and T. Printezis. A generational mostly-concurrent garbage collector. Technical report, Sun Microsystems, 2000. Google Scholar
Digital Library
- T. Domani, E. K. Kolodner, and E. Petrank. A generational on-the-fly garbage collector for java. In PLDI, volume 35, pages 274–284. ACM, 2000. Google Scholar
Digital Library
- H. Eran and E. Petrank. A study of data structures with a deep heap shape. In MSPC. ACM, 2013. Google Scholar
Digital Library
- R. Garner, S. M. Blackburn, and D. Frampton. Effective prefetch for mark-sweep garbage collection. In ISMM, pages 43–54. ACM, 2007. Google Scholar
Digital Library
- S. Z. Guyer, K. S. McKinley, and D. Frampton. Free-me: a static analysis for automatic individual object reclamation. PLDI, pages 364–375, 2006. Google Scholar
Digital Library
- M. Hertz, Y. Feng, and E. D. Berger. Garbage collection without paging. In PLDI, volume 40, pages 143–153. ACM, 2005. Google Scholar
Digital Library
- M. Hicks, G. Morrisett, D. Grossman, and T. Jim. Experience with safe manual memory-management in cyclone. In ISMM, pages 73–84. ACM, 2004. Google Scholar
Digital Library
- H. Kermany and E. Petrank. The compressor: concurrent, incremental, and parallel compaction. In PLDI, pages 354– 363, 2006. Google Scholar
Digital Library
- KittyCache. Kittycache. https://code.google.com/p/kittycache/, 2009.Google Scholar
- Y. Levanoni and E. Petrank. An on-the-fly reference counting garbage collector for java. In OOPSLA, pages 367–380, 1999. Google Scholar
Digital Library
- Y. Ossia, O. Ben-Yitzhak, I. Goft, E. K. Kolodner, V. Leikehman, and A. Owshanko. A parallel, incremental and concurrent gc for servers. In PLDI, pages 129–140, 2002. Google Scholar
Digital Library
- P. Reames and G. Necula. Towards hinted collection: annotations for decreasing garbage collector pause times. In ISMM, pages 3–14. ACM, 2013. Google Scholar
Digital Library
- N. Sachindran, J. E. B. Moss, and E. D. Berger. mc 2 : highperformance garbage collection for memory-constrained environments. OOPSLA, 39(10):81–98, 2004. Google Scholar
Digital Library
- R. Shahriyar, S. M. Blackburn, X. Yang, and K. S. McKinley. Taking off the gloves with reference counting immix. In OOPSLA, pages 93–110, 2013. Google Scholar
Digital Library
- Y. Shuf, M. Gupta, R. Bordawekar, and J. P. Singh. Exploiting prolific types for memory management and optimizations. Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, pages 295–306, 2002. Google Scholar
Digital Library
- F. Siebert. Limits of parallel marking collection. In ISMM, pages 21–29. ACM, 2008. Google Scholar
Digital Library
- SPEC. Specjbb2005. http://www.spec.org/jbb2005/, 2005.Google Scholar
- T. Ugawa, H. Iwasaki, and T. Yuasa. Improvements of recovery from marking stack overflow in mark sweep garbage collection. IPSJ Online Transactions, 5, 2012.Google Scholar
- A. Wick and M. Flatt. Memory accounting without partitions. In ISMM, pages 120–130. ACM, 2004. Google Scholar
Digital Library
- X. Yang, S. M. Blackburn, D. Frampton, J. B. Sartor, and K. S. McKinley. Why nothing matters: the impact of zeroing. In OOPSLA, volume 46, pages 307–324. ACM, 2011. Google Scholar
Digital Library
Index Terms
Data structure aware garbage collector
Recommendations
Data structure aware garbage collector
ISMM '15: Proceedings of the 2015 International Symposium on Memory ManagementGarbage collection may benefit greatly from knowledge about program behavior, but most managed languages do not provide means for the programmer to deliver such knowledge. In this work we propose a very simple interface that requires minor programmer ...
A generational on-the-fly garbage collector for Java
PLDI '00: Proceedings of the ACM SIGPLAN 2000 conference on Programming language design and implementationAn on-the-fly garbage collector does not stop the program threads to perform the collection. Instead, the collector executes in a separate thread (or process) in parallel to the program. On-the-fly collectors are useful for multi-threaded applications ...
Reducing pause time of conservative collectors
MSP 2002 and ISMM 2002This paper describes an incremental conservative garbage collector that significantly reduces pause time of an existing collector by Boehm et al. Like their collector, it is a true conservative collector that does not require compiler cooperation but ...






Comments