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 条
  • [41] A POOLING MEMORY MANAGER FOR C++ - PLUGGING MEMORY LEAKS AND CHASING NULL POINTERS
    SAELENSMINDE, K
    DR DOBBS JOURNAL, 1995, 20 (08): : 34 - &
  • [42] EffectiveSan: Type and memory error detection using dynamically typed C/C++
    Duck G.J.
    Yap R.H.C.
    2018, Association for Computing Machinery, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, United States (53): : 181 - 195
  • [43] 从C++走向标准C++
    张成章
    中文信息, 1999, (01) : 25 - 29
  • [44] The GiNaC framework for symbolic computation within the C++ programming language
    Bauer, C
    Frink, A
    Kreckel, R
    SYMBOLIC COMPUTATION AND AUTOMATED REASONING, 2001, : 241 - 242
  • [45] A framework for service-oriented computing with C and C++ web service components
    Van Engelen, Robert A.
    ACM TRANSACTIONS ON INTERNET TECHNOLOGY, 2008, 8 (03)
  • [46] Scope, a framework of objects to develop structural analysis programs in C++
    Reimann, K
    Gil, L
    Jentsch, M
    Sanchez, M
    DEVELOPMENTS IN ENGINEERING COMPUTATIONAL TECHNOLOGY, 2000, : 117 - 122
  • [47] C++: C++ in the classroom: a look forward
    Koenig, Andrew
    Journal of Object-Oriented Programming, 1997, 10 (01):
  • [48] A Framework for Data Partitioning for C++ Data-Intensive Applications
    A. Milidonis
    G. Dimitroulakos
    M. D. Galanis
    A. P. Kakarountas
    G. Theodoridis
    C. Goutis
    F. Catthoor
    Design Automation for Embedded Systems, 2004, 9 : 101 - 121
  • [49] A C++ framework for creating tissue specific segmentation-pipelines
    Pfeifer, B
    Hanser, F
    Seger, M
    Hintermüller, C
    Modre-Osprian, R
    Fischer, G
    Mühlthaler, H
    Trieb, T
    Tilg, B
    MEDICAL IMAGING 2005: VISUALIZATION, IMAGE-GUIDED PROCEDURES, AND DISPLAY, PTS 1 AND 2, 2005, 5744 : 317 - 328
  • [50] jMetalCpp: optimizing molecular docking problems with a C++ metaheuristic framework
    Lopez-Camacho, Esteban
    Garcia Godoy, Maria Jesus
    Nebro, Antonio J.
    Aldana-Montes, Jose F.
    BIOINFORMATICS, 2014, 30 (03) : 437 - 438