A customisable memory management framework for C++

被引:0
|
作者
Attardi, G [1 ]
Flagella, T [1 ]
Iglio, P [1 ]
机构
[1] Univ Pisa, Dipartimento Informat, I-56125 Pisa, Italy
来源
SOFTWARE-PRACTICE & EXPERIENCE | 1998年 / 28卷 / 11期
关键词
memory management; garbage collection; C++;
D O I
10.1002/(SICI)1097-024X(199809)28:11<1143::AID-SPE194>3.0.CO;2-7
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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 Manager (CMM) organises memory in multiple heaps. Each heap is an instance of C++ class which abstracts and 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 collectors 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 performance of the CMM is analysed and compared to other conservative collectors for C/C++ in various configurations. (C) 1998 John Wiley & Sons, Ltd.
引用
下载
收藏
页码:1143 / 1183
页数:41
相关论文
共 50 条
  • [1] Customisable memory management framework for C++
    Universita di Pisa, Pisa, Italy
    Software Pract Exper, 11 (1143-1183):
  • [2] HyflowCPP: A distributed transactional memory framework for C++
    Mishra, Sudhanshu
    Turcu, Alexandru
    Palmieri, Roberto
    Ravindran, Binoy
    Proceedings - IEEE 12th International Symposium on Network Computing and Applications, NCA 2013, 2013, : 219 - 226
  • [3] A study of dynamic memory management in C++ programs
    Lee, WH
    Chang, M
    COMPUTER LANGUAGES SYSTEMS & STRUCTURES, 2002, 28 (03) : 237 - 272
  • [4] A method for automatic optimization of dynamic memory management in C++
    Häggander, D
    Lidén, P
    Lundberg, L
    PROCEEDINGS OF THE 2001 INTERNATIONAL CONFERENCE ON PARALLEL PROCESSING, 2001, : 489 - 498
  • [5] The ROOT C++ framework for astronomy
    Rohlfs, R
    ASTRONOMICAL DATA ANALYSIS SOFTWARE AND SYSTEMS XIII, 2004, 314 : 384 - 387
  • [6] Resource management in C++
    Milewski, B
    JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 1997, 10 (01): : 14 - 22
  • [7] Composing special memory allocators in C++
    Loepere, K
    PROCEEDINGS OF THE SECOND USENIX CONFERENCE ON OBJECT-ORIENTED TECHNOLOGIES AND SYSTEMS (COOTS), 1996, : 15 - 24
  • [8] A framework for programming denotational semantics in C++
    Papaspyrou, NS
    ACM SIGPLAN NOTICES, 1996, 31 (08) : 16 - 25
  • [9] Framework for automatic SDL to C++ translation
    Trossen, D
    Cseh, C
    Kogan, R
    FORMAL METHODS FOR PROTOCOL ENGINEERING AND DISTRIBUTED SYSTEMS, 1999, 28 : 95 - 115
  • [10] INSTANTIATION OF C++ OBJECTS IN SHARED MEMORY
    JORDAN, D
    JOURNAL OF OBJECT-ORIENTED PROGRAMMING, 1991, 4 (01): : 21 - 28