What Does Automatic Memory Management (AMM) Mean?
Automatic memory management (AMM) is a technique in which an operating system or application automatically manages the allocation and deallocation of memory. This means that a programmer does not have to write code to perform memory management tasks when developing an application. Automatic memory management can eliminate common problems such as forgetting to free memory allocated to an object and causing a memory leak, or attempting to access memory for an object that has already been freed.
Garbage collection is a form of automatic memory management.
Techopedia Explains Automatic Memory Management (AMM)
Oracle has proprietary AMM parameters, such as PGA_AGGREGATE_TARGET and SGA_TARGET. Oracle uses two initialization parameters to configure AMM, as follows:
- MEMORY_TARGET: Set at zero by default. Dynamically facilitates the adjustment of Oracle's total memory availability up to MEMORY_MAX_TARGET limitations.
- MEMORY_MAX_TARGET: Defines the maximum size of MEMORY_TARGET, which may be increased without restarting an instance.
The .NET common language run time's garbage collector manages the allocation and release of memory for an application. The following occurs during new .NET framework process initialization:
- AMM reserves the address space's adjacent area at run time, which is known as the managed heap.
- This address space has an address pointer, which is used to allocate subsequent objects.
- The pointer is initially set to manage the heap’s base address, where each reference type is also allocated.
Managed heap memory allocation is more efficient than unmanaged memory allocation.