What is Automatic Memory Management?
Automatic Memory Management (AMM) is a technique in which an operating system or application automatically manages the allocation and release of memory. This means that a programmer does not need to write code to perform memory management tasks when developing an application. Automatic memory management can cause common problems such as forgetting the memory allocated to an object and experiencing a memory leak, or forgetting to access memory for an object that has already been freed.
Garbage collection is a form of automatic memory management.
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 to zero by default. Dynamically adjusts total memory availability from Oracle up to MEMORY_MAX_TARGET constraints.
MEMORY_MAX_TARGET: Defines the maximum size of MEMORY_TARGET that can be increased without restarting an instance.
The .NET common language runtime garbage collector manages the allocation and release of memory for an application. The following occurs during the initialization of the .NET
Framework process on:
AMM reserves the adjacent area of address space at runtime, known as the managed heap.
This address space has an address pointer with which the following objects are assigned.
The pointer is initially set to maintain the base address of the heap, with each type of reference also assigned.
Managed heap memory allocation is more efficient than unmanaged memory allocation.