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.
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Boehm, H.-J. and Weiser, M. 1988. Garbage collection in an uncooperative environment. Softw. Pract. Exper. 18, 9, 807--820. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- Kolodner, H. and Steele, G., Eds. 2009. Proceedings of the 8th International Symposium on Memory Management. ACM Press. Google Scholar
- Persson, P. 1999. Live memory analysis for garbage collection in embedded systems. In ACM SIGPLAN Not. 34, 7, ACM Press, 45--54. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- POPL. 2002. Proceedings of the 29th Annual ACM Symposium on Principles of Programming Languages. ACM SIGPLAN Not. 37, 1, ACM Press.Google Scholar
- Robson, J. M. 1971. An estimate of the store size necessary for dynamic storage allocation. J. ACM 18, 3, 416--423. Google ScholarDigital Library
- Robson, J. M. 1974. Bounds for some functions concerning dynamic storage allocation. J. ACM 21, 3, 419--499. Google ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
- 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 ScholarDigital Library
Index Terms
- Space overhead bounds for dynamic memory management with partial compaction
Recommendations
Limitations of Partial Compaction: Towards Practical Bounds
Compaction of a managed heap is a costly operation to be avoided as much as possible in commercial runtimes. Instead, partial compaction is often used to defragment parts of the heap and avoid space blowup. Previous study of compaction limitation ...
Space overhead bounds for dynamic memory management with partial compaction
POPL '11Dynamic memory allocation is ubiquitous in today's runtime environments. Allocation and de-allocation of objects during program execution may cause fragmentation and foil the program's ability to allocate objects. Robson has shown that a worst case ...
Space overhead bounds for dynamic memory management with partial compaction
POPL '11: Proceedings of the 38th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languagesDynamic memory allocation is ubiquitous in today's runtime environments. Allocation and de-allocation of objects during program execution may cause fragmentation and foil the program's ability to allocate objects. Robson has shown that a worst case ...
Comments