Home > C,C++ > Memory management

Memory management

Related Categories

SmartHeap is a fast (3X-100X faster than compiler-supplied libraries), portable (DOS, Windows 16/32, OS/2, Macintosh, UNIX), reliable, ANSI-compliant malloc/operator new library. SmartHeap supports multiple memory pools, includes a fixed-size allocator, and is thread-safe. SmartHeap also includes comprehensive memory debugging APIs to detect leakage, overwrites, double-frees, wild pointers, out of memory, references to previously freed memory, and other memory errors.
Submitted: Jan 09, 1999
A Memory Allocator  
Memory allocators form interesting case studies in the engineering of infrastructure software. I started writing one in 1987, and have maintained and evolved it (with the help of many volunteer contributors) ever since. This allocator provides implementations of the the standard C routines malloc(), free(), and realloc(), as well as a few auxiliary utility routines. The allocator has never been given a specific name. Most people just call it Doug Lea's Malloc, or dlmalloc for short.
Submitted: Nov 29, 1998
ESP -Effective C++ Memory Allocation  
Using several features of the language, the author presents a framework for resource allocation which is temporally deterministic, provides for callback, provides memory pools, and can provide for deadlock prevention. The article contains examples that will help to programmer to use that technique efficiently.
Submitted: Nov 21, 1999
[FREESW]A garbage collector for C and C++  
The Boehm-Demers-Weiser conservative garbage collector can be used as a garbage collecting replacement for C malloc or C++ new. It is also used by a number of programming language implementations that use C as intermediate code. Alternatively, it may be used as a leak detector for C or C++ programs, though that is not its primary goal.
Submitted: Oct 23, 1997
Fortify is a powerful C++ debugging aid. It detects and pinpoints memory related bugs. It supports alloc/calloc/realloc/strdup/free and new/delete. It traps memory leaks, writes beyond and before memory blocks, writes to freed memory, free twice, freeing memory never allocated, and removes all randomness from reading uninitialized or free memory.
Submitted: Apr 18, 1998
Embedded system programming  
This article contains some tricks to make nonvolatile data really tough to lose, even if someone pulls the plug on your system at exactly the wrong time.
Submitted: Nov 21, 1999
Dynamic memory allocator implementations in Linux system libraries  
Memory layout in the Linux/GNU libc implementation. Performance results of popular malloc implementations, both with random and real-world allocation patterns. Special features of the Linux/GNU libc implementation. malloc in multi-threaded applications - the 'ptmalloc' implementation from GNU libc-2.x.
Submitted: Nov 29, 1998
Dmalloc - Debug Malloc Home Page  
The debug memory allocation or dmalloc library has been designed as a drop-in replacement for the system's malloc, realloc, calloc, free and other memory management routines while providing powerful debugging facilities configurable at runtime. These facilities include such things as memory-leak tracking, fence-post write detection, file/line number reporting, and general logging of statistics.
Submitted: Jul 01, 1999
NewCode MTS  
MTS provides an order of magnitude improvement over system supplied libraries under Windows and Unix and is 2-5 times faster than the GNU GPL Hoard memory manager. Memory management is only one component of a system's dynamic performance, however, it can quickly become the dominant one. While a typical program spends no more than 5-40% of its runtime in memory management related functions, an SMP program, in its memory management functions, can easily experience dramatic drops in CPU utilization rates due to the heavy lock contention introduced by a non scalable heap design. MTS usually leads to an overall application performance improvement of 30-50% and gains of between 800-1200% are common.
Submitted: Jan 16, 2006
A link library that attempts to diagnose run-time errors that are caused by the wrong use of dynamically allocated memory. Along with providing a comprehensive and configurable log of all dynamic memory operations that occurred during the lifetime of a program, the mpatrol library performs extensive checking to detect any misuse of dynamically allocated memory. All of this functionality can be integrated into existing code through the inclusion of a single header file at compile-time. All logging and tracing output from the mpatrol library is sent to a separate log file in order to keep its diagnostics separate from any that the program being tested might generate. A wide variety of library settings can also be changed at run-time via an environment variable, thus removing the need to recompile or relink in order to change the library's behaviour.
Submitted: Aug 31, 2000
Electric Fence  
Electric Fence is a different kind of malloc() debugger. It uses the virtual memory hardware of your system to detect when software overruns the boundaries of a malloc() buffer. It will also detect any accesses of memory that has been released by free().
Submitted: Nov 21, 1999
The Coherent Virtual Machine is a distributed shared memory (DSM) system. A very early release of the software is available (4/97) although this is an ongoing project. The goals of CVM include: multiple protocol support with the initial configuration file providing four memory models, i.e. single- and multiple-writer versions of lazy release consistency, sequential consistency, and eager release consistency; extensibility in that the source will be freely available and the modules are written in C++; multi-threading support which will allow overlap of computation and communication through context switching; and fault tolerance sufficient to allow the system to recover from at least one node failure at a time.
Submitted: Jan 09, 2000
Split-C is a parallel extension of the C programming language that supports efficient access to a global address space on current distributed memory multiprocessors. It retains the "small language" character of C and supports careful engineering and optimization of programs by providing a simple, predictable cost model. From this site you can download the Split-C distribution and all available documentation for Split-C.
Submitted: Dec 19, 1999
GC FAQ -- draft  
Rather than using malloc and free to obtain and reclaim memory, it is possible to link in a garbage collector and allow it to reclaim unused memory automatically. This usually even works if malloc is replaced with the garbage collector's allocator and free is replaced with a do-nothing subroutine. This approach has worked with the X11 library, for instance. The file is currently broken up into three parts, corresponding roughly to general stuff, techniques and algorithms, language interfaces to GC (garbage collector), and more difficult topics.
Submitted: Nov 21, 1999
OOPS Group Publications  
This is the papers page for the OOPS Research Group of the Department of Computer Sciences at the University of Texas at Austin.
Submitted: Jul 11, 1999

  Privacy - Trademarks - Feedback - Terms of Use Copyright The MathWorks, Inc.