|Top Previous Next|
This view displays information about all heaps in the system. You can use the process filter to select only heaps from the processes you are interested in.
A heap is virtual memory created and managed by a heap manager. When your process is created, a default heap is created. It's handle can be obtained by calling GetProcessHeap().
The default process heap is used by:
Your process can create private heaps by calling HeapCreate(). It is used by calls to HeapAlloc, HeapReAlloc, and HeapFree.
Handles for all heaps, including the default process heap, can be obtained by calling GetProcessHeaps().
A heap, when created, has an initial region (virtual memory reservation). Some part is then committed. As new allocation requests are made, the amount of committed virtual memory may increase.
New regions are created if the heap needs to grow. A heap grows when a new allocation request cannot fit in any existing region. As an example, start with a heap whose initial size is 192KB. After creation, allocations totalling 160KB are requested. Approximately 32KB is remaining. If the next allocation request is greater than 32KB the heap manager will create a new region for the heap. Check Advanced Heap Statistics for information about the heap regions.
Each allocation is referred to as an in use block. An allocation that is freed is referred to as a free block. A big block is created for large memory allocation requests. A new region is created for the heap to accommodate the single big block allocation.
NOTE: Use the process filter to choose only the processes you are interested in. This will improve performance as collecting heap data for every process takes time.
The process's default heap is green.
NOTE: Heap information for kernel processes is not available in Windows CE 6.0 and higher.