skip to main content
research-article
Open Access

Space overhead bounds for dynamic memory management with partial compaction

Published:05 November 2012Publication History
Skip Abstract Section

Abstract

Dynamic memory allocation is ubiquitous in today's runtime environments. Allocation and deallocation of objects during program execution may cause fragmentation and foil the program's ability to allocate objects. Robson [1971] has shown that a worst-case scenario can create a space overhead within a factor of log n of the space that is actually required by the program, where n is the size of the largest possible object. Compaction can eliminate fragmentation, but is too costly to be run frequently. Many runtime systems employ partial compaction, in which only a small fraction of the allocated objects are moved. Partial compaction reduces some of the existing fragmentation at an acceptable cost. In this article we study the effectiveness of partial compaction and provide the first rigorous lower and upper bounds on its effectiveness in reducing fragmentation at a low cost.

References

  1. Abuaiadh, D., Ossia, Y., Petrank, E., and Silbershtein, U. 2004. An efficient parallel heap compaction algorithm. ACM SIGPLAN Not. 39, 1, ACM Press, 224--236. Google ScholarGoogle ScholarDigital LibraryDigital Library
  2. Albert, E., Genaim, S., and Gómez-Zamalloa, M. 2010. Parametric inference of memory requirements for garbage collected languages. In 9th International Symposium on Memory Management, J. Vitek and D. Lea, Eds., ACM Press, 121--130. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Albert, E., Genaim, S., and Gómez-Zamalloa Gil, M. 2009. Live heap space analysis for languages with garbage collection. In Proceedings of the 8th International Symposium on Memory Management. 129--138. Google ScholarGoogle ScholarDigital LibraryDigital Library
  4. Bacon, D. F., Cheng, P., and Rajan, V. 2003. A real-time garbage collector with low overhead and consistent utilization. In Proceedings of the ACM SIGPLAN Not. 38, 1, ACM Press, 285--298. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Ben-Yitzhak, O., Goft, I., Kolodner, E., Kuiper, K., and Leikehman, V. 2002. An algorithm for parallel incremental compaction. In Proceedings of the Management, ACM SIGPLAN Not. 38, 2 (supplement). ACM Press, 100--105. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Boehm, H.-J. 2002. Bounding space usage of conservative garbage collectors. In Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages. Google ScholarGoogle ScholarDigital LibraryDigital Library
  7. Boehm, H.-J. 2004. The space cost of lazy reference counting. In Proceedings of the ACM SIGPLAN Not. 39, 1, ACM Press, 210--219. Google ScholarGoogle ScholarDigital LibraryDigital Library
  8. Boehm, H.-J. and Weiser, M. 1988. Garbage collection in an uncooperative environment. Softw. Pract. Exper. 18, 9, 807--820. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Click, C., Tene, G., and Wolf, M. 2005. The Pauseless GC algorithm. In 1st ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments. M. Hind and J. Vitek, Eds., ACM Press, 46--56. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Detlefs, D., Flood, C., Heller, S., and Printezis, T. 2004. Garbage-First garbage collection. In Proceedings of the 4th International Symposium on Memory Management. D. F. Bacon and A. Diwan, Eds., ACM Press, 37--48. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Domani, T., Kolodner, E. K., Lewis, E., Salant, E. E., Barabash, K., Lahan, I., Petrank, E., Yanover, I., and Levanoni, Y. 2000. Implementing an on-the-fly garbage collector for Java. In Proceedings of the 2nd International Symposium on Memory Management. C. Chambers and A. L. Hosking, Eds., ACM Press, 155--166. Google ScholarGoogle ScholarDigital LibraryDigital Library
  12. Jones, R., Hosking, A., and Moss, E. 2011. The Garbage Collection Handbook: The Art of Automatic Memory Management. CRC Applied Algorithms and Data Structures, Chapman & Hall. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Kermany, H. and Petrank, E. 2006. The Compressor: Concurrent, incremental and parallel compaction. In Proceedings of the ACM SIGPLAN Not. 11, 6. ACM Press, 354--363. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Kolodner, H. and Steele, G., Eds. 2009. Proceedings of the 8th International Symposium on Memory Management. ACM Press. Google ScholarGoogle Scholar
  15. Persson, P. 1999. Live memory analysis for garbage collection in embedded systems. In ACM SIGPLAN Not. 34, 7, ACM Press, 45--54. Google ScholarGoogle ScholarDigital LibraryDigital Library
  16. Petrank, E. and Rawitz, D. 2002. The hardness of cache conscious data placement. In Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages (POPL'02). 101--112. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Pizlo, F., Frampton, D., Petrank, E., and Steensgard, B. 2007. Stopless: A real-time garbage collector for multiprocessors. In Proceedings of the 6th International Symposium on Memory Management. G. Morrisett and M. Sagiv, Eds., ACM Press, 159--172. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Pizlo, F., Petrank, E., and Steensgaard, B. 2008. A study of concurrent real-time garbage collectors. In Proceedings of the ACM SIGPLAN Not. 43, 6, ACM Press, 33--44. Google ScholarGoogle ScholarDigital LibraryDigital Library
  19. POPL. 2002. Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages. ACM SIGPLAN Not. 37, 1, ACM Press.Google ScholarGoogle Scholar
  20. Robson, J. M. 1971. An estimate of the store size necessary for dynamic storage allocation. J. ACM 18, 3, 416--423. Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Robson, J. M. 1974. Bounds for some functions concerning dynamic storage allocation. J. ACM 21, 3, 419--499. Google ScholarGoogle ScholarDigital LibraryDigital Library
  22. Unnikrishnan, L. and Stoller, S. D. 2009. Parametric heap usage analysis for functional programs. In Proceedings of the 8th International Symposium on Memory Management, 139--148. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Unnikrishnan, L., Stoller, S. D., and Liu, Y. A. 2001. Automatic accurate live memory analysis for garbage-collected languages. In Proceedings of the ACM SIGPLAN Not. 36, 8, ACM Press, 102--111. Google ScholarGoogle ScholarDigital LibraryDigital Library
  24. Wilson, P. R., Johnstone, M. S., Neely, M., and Boles, D. 1995. Dynamic storage allocation: A survey and critical review. In Proceedings of the International Workshop on Memory Management. H. G. Baker, Ed., Lecture Notes in Computer Science Series, vol. 986., Springer, 1--116. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Space overhead bounds for dynamic memory management with partial compaction

            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

            • Published in

              cover image ACM Transactions on Programming Languages and Systems
              ACM Transactions on Programming Languages and Systems  Volume 34, Issue 3
              October 2012
              183 pages
              ISSN:0164-0925
              EISSN:1558-4593
              DOI:10.1145/2362389
              Issue’s Table of Contents

              Copyright © 2012 ACM

              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: 5 November 2012
              • Accepted: 1 May 2012
              • Revised: 1 January 2012
              • Received: 1 March 2011
              Published in toplas Volume 34, Issue 3

              Permissions

              Request permissions about this article.

              Request Permissions

              Check for updates

              Qualifiers

              • research-article
              • Research
              • Refereed

            PDF Format

            View or Download as a PDF file.

            PDF

            eReader

            View online with eReader.

            eReader