2001•Unpublished venueRequires access

A study of high-performance dynamic memory management in object-oriented programming

J. Morris Chang, Woo Hyong Lee

Open publisher page 0 citations

Abstract

The importance of dynamic memory management has increased significantly as there is a growing number of developments in object-oriented programs. Many studies show that dynamic memory management is one of the most expensive components of many software systems. It can consume up to 30% of the program execution time. Object-Oriented Programming (OOP) language systems tend to perform object creation and deletion prolifically. An empirical study has shown that C++ programs can have ten times more memory allocation and deallocation than comparable C programs. However, the allocation behavior of C++ programs is rarely reported. In this study, we attempted to locate where the dynamic memory allocations are coming from and report an empirical study of the allocation behavior of C++ programs. To do the experiment, we introduce a dynamic memory tracing tool, called Mtrace++, to study the memory allocation behavior in C++. Mtrace++ is a source code level instrumented tracing tool that produces records of allocation and deallocation information. Using Mtrace++, the C++ allocation patterns are studied thoroughly. After we identify the allocation behavior, we discuss a new high-performance memory management strategies, which were developed based on our empirical investigations. The goals for the strategies are fast allocation, fast deallocation, maximizing portability and space conservation.

About this research paper

What this paper is about

The importance of dynamic memory management has increased significantly as there is a growing number of developments in object-oriented programs. Many studies show that dynamic memory management is one of the most expensive components of many software systems. It can consume up to 30% of the program execution time. Object-Oriented Programming (OOP) language systems tend to perform object creation and deletion prolifically. An empirical study has shown that C++ programs can have ten times more memory allocation and deallocation than comparable C programs. However, the allocation behavior of C++ programs is rarely reported. In this study, we attempted to locate where the dynamic memory allocations are coming from and report an empirical study of the allocation behavior of C++ programs. To do the experiment, we introduce a dynamic memory tracing tool, called Mtrace++, to study the memory allocation behavior in C++. Mtrace++ is a source code level instrumented tracing tool that produces records of allocation and deallocation information. Using Mtrace++, the C++ allocation patterns are studied thoroughly. After we identify the allocation behavior, we discuss a new high-performance memory management strategies, which were developed based on our empirical investigations. The goals for the strategies are fast allocation, fast deallocation, maximizing portability and space conservation.

Why it matters

A significance statement is not available in the OpenAlex record.

Key contribution

A contribution statement is not available in the OpenAlex record.

Method / approach

Method details are not available in the OpenAlex metadata.

Main findings

Findings are not separately available in the OpenAlex metadata.

Limitations

Limitations are not available in the OpenAlex metadata.

Applications

Application details are not available in the OpenAlex metadata.

Available abstract

The importance of dynamic memory management has increased significantly as there is a growing number of developments in object-oriented programs. Many studies show that dynamic memory management is one of the most expensive components of many software systems. It can consume up to 30% of the program execution time. Object-Oriented Programming (OOP) language systems tend to perform object creation and deletion prolifically. An empirical study has shown that C++ programs can have ten times more memory allocation and deallocation than comparable C programs. However, the allocation behavior of C++ programs is rarely reported. In this study, we attempted to locate where the dynamic memory allocations are coming from and report an empirical study of the allocation behavior of C++ programs. To do the experiment, we introduce a dynamic memory tracing tool, called Mtrace++, to study the memory allocation behavior in C++. Mtrace++ is a source code level instrumented tracing tool that produces records of allocation and deallocation information. Using Mtrace++, the C++ allocation patterns are studied thoroughly. After we identify the allocation behavior, we discuss a new high-performance memory management strategies, which were developed based on our empirical investigations. The goals for the strategies are fast allocation, fast deallocation, maximizing portability and space conservation.

Key concepts: Computer science, C dynamic memory allocation, Allocator, Memory management, Tracing, Software portability, Distributed computing, Programming language

Related papers

Back to paper searchBrowse research topicsOriginal source
A study of high-performance dynamic memory management in object-oriented programming — Research Paper | ScholarLens