Skip to main content

Customising object allocation

  • Conference paper
  • First Online:
  • 185 Accesses

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 821))

Abstract

Automatic garbage collection relieves programmers from the burden of managing memory themselves and several techniques have been developed that make garbage collection feasible in many situations, including real time applications or within traditional programming languages. However optimal performance cannot always be achieved by a uniform general purpose solution. Sometimes an algorithm exhibits a predictable pattern of memory usage that could be better handled specifically, delaying as much as possible the intervention of the general purpose collector. This leads to the requirement for algorithm specific customisation of the collector strategies. We present a dynamic memory management framework which can be customised to the needs of an algorithm, while preserving the convenience of automatic collection in the normal case. The Customisable Memory Management (CMM) organizes memory in multiple heaps. Each heap is defined as a C++ class which encapsulates a particular storage discipline. The default heap for collectable objects uses the technique of mostly copying garbage collection, providing good performance and memory compaction. Customisation of the collector is achieved exploiting object orientation by defining specialised versions of the collector methods for each heap class. The object oriented interface to the collector enables coexistence and coordination among the various collector as well as integration with traditional code unaware of garbage collection. The CMM is implemented in C++ without any special support in the language or the compiler. The techniques used in the CMM are general enough to be applicable also to other languages.

The research described here has been funded in part by the ESPRIT Basic Research Action, project PoSSo.

Part of this work has been done while the first author was visiting the International Computer Science Institute, Berkeley, California.

This is a preview of subscription content, log in via an institution.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. J.D. Ichbiah et al. “Rationale for the design of the ADA programming language”, ACM SIGPLAN Notices, 14(6), 1979.

    Google Scholar 

  2. G. Attardi and T. Flagella “A customisable memory management framekwork”, Proceedings of USENIX C++ Conference 1994, Cambridge, Massachusetts, April 1994.

    Google Scholar 

  3. J.F. Bartlett “Compacting garbage collection with ambiguous roots” Tech. Rep. 88/2, DEC Western Research Laboratory, Palo Alto, California, February 1988.

    Google Scholar 

  4. J.F. Bartlett “Mostly-copying collection picks up generations and C++”, Tech. Rep. TN-12, DEC Western Research Laboratory, Palo Alto, California, October 1989.

    Google Scholar 

  5. H.J. Boehm and M. Weiser “Garbage collection in an uncooperative environment”, Software Practice and Experience, 18(9), 1988, 807–820.

    Google Scholar 

  6. B. Buchberger, “Gröbner bases: an algorithmic method in polynomial ideal theory”, Recent trends in multidimensional systems theory, N. K. Bose, ed., D. Reidel Publ. Comp. 1985, 184–232.

    Google Scholar 

  7. D. L. Detlefs, “Concurrent garbage collection for C++”, CMU-CS-90-119, School of Computer Science, Carnegie Mellon University, 1990.

    Google Scholar 

  8. D.R. Edelson “Precompiling C++ for garbage collection”, in Memory Management, Y. Bekkers and J. Cohen (Eds.), Lecture Notes in Computer Science, n. 637, Springer-Verlag, 1992, 299–314.

    Google Scholar 

  9. D.R. Edelson “A mark-and-sweep collector for C++”, Proc. of ACM Conference on Principle of Programming Languages, 1992.

    Google Scholar 

  10. J.R. Ellis and D.L. Detlefs “Safe, efficient garbage collection for C++”, Xerox PARC report CSL-93-4, 1993.

    Google Scholar 

  11. G. Nelson, editor “Systems Programming with Modula3”, Prentice Hall, 1991.

    Google Scholar 

  12. F. Rouillier “Personal communication”, 1994.

    Google Scholar 

  13. A.D. Samples “GC-cooperative C++”, Lecture Notes in Computer Science, n. 637, Springer-Verlag, 1992, 315–329.

    Google Scholar 

  14. D. Weinreb, D. Moon and R.M. Stallman “Lisp Machine Manual” Massachusetts Institute of Technology, Cambridge, Massachusetts, 1983.

    Google Scholar 

  15. E. P. Wentworth “Pitfalls of conservative garbage collection”, Software Practice and Experience, 20(7), 1990, 719–727.

    MathSciNet  Google Scholar 

  16. P.R. Wilson “Uniprocessor garbage collection techniques”, in Memory Management, Y. Bekkers and J. Cohen (Eds.), Lecture Notes in Computer Science, n. 637, Springer-Verlag, 1992, 1–42.

    Google Scholar 

  17. B. Zorn “The measured cost of conservative garbage collection” Technical Report CU-CS-573-92, Department of Computer Science, University of Colorado at Boulder, 1992.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mario Tokoro Remo Pareschi

Rights and permissions

Reprints and permissions

Copyright information

© 1994 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Attardi, G., Flagella, T. (1994). Customising object allocation. In: Tokoro, M., Pareschi, R. (eds) Object-Oriented Programming. ECOOP 1994. Lecture Notes in Computer Science, vol 821. Springer, Berlin, Heidelberg. https://doi.org/10.1007/BFb0052190

Download citation

  • DOI: https://doi.org/10.1007/BFb0052190

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-58202-1

  • Online ISBN: 978-3-540-48567-4

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics