Heaps

Top  Previous  Next

Available in

Entrek ProcMan Standard Edition
Entrek ProcMan Professional Edition
Entrek ProcMan Professional+ Edition

 

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:

C functions malloc, calloc, realloc, and free.
C++ functions new and delete.
Win32 APIs LocalAlloc, LocalReAlloc, and LocalFree.

 

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.

 

Heaps

 

Heap Columns

 

Heap ID: OS-generated heap identification number.
Flags: 0x00000001 indicates the the heap is the process's default heap.  No other flags are defined.
Owner Process ID: identifier of the process that owns the heap.
Owner Process Name: name of the process that owns the heap.
Base Address: the virtual address of the beginning of the hap.
Regions: the number of regions in the heap.
Virtual Size: the total virtual size of all the heap's regions.
Virtual Commit: the total amount of virtual memory committed for the heap.
In Use Blocks: the number of blocks allocated in all regions of the heap.
Big Blocks: the number of big blocks allocated in all regions of the heap.
Total In Use Blocks: the total size of all the In Use blocks in all regions of the heap.
Largest In Use Block: the size of the largest In Use block in all regions of the heap.
Smallest In Use Block: the size of the smallest In Use block in all regions of the heap.
Free Blocks: the number of Free blocks in all regions of the heap.
Total Free Blocks: the total size of all the Free blocks in the heap.
Largest Free Block: the size of the largest Free block in the heap.
Smallest Free Block: the size of the smallest Free block in the heap.

 

Color-Coding

 

The process's default heap is green.

 

NOTE: Heap information for kernel processes is not available in Windows CE 6.0 and higher.