Memory Page

Top  Previous  Next

The Memory Page shows detailed information about the memory allocated by the EXPL runtime system. The information is updated dynamically as you step through the program.

I. Program Memory. EXPL stores program code at the bottom of memory, along with local variables that need to be accessed from the user's code.


Prog Size. This is the number of bytes used by the program's code.


Local Size. This is the amount of memory set aside for intrinsic information that needs to be accessible to the user. For example, the Equip intrinsic stores information about the hardware resources of the computer in this memory.


Local Start. This is the address of the beginning of the local storage described above.


II. Heap Memory. Heap Memory is used for both the storage of program and user data. The heap expands and contracts as the program enters and exists subroutines. Users allocate heap space by declaring array variables or by using the Reserve intrinsic.


Heap Start. This is the address of the beginning of the heap space.


Heap Pointer. This is the pointer to the last item on the heap.



Heap Size. This is the number of bytes of heap space that are currently in use by the program.


Heap Allocation. This is the total memory that has been allocated to the heap. This is not the maximum memory available to the program. EXPL allocates operating system memory as it is needed, so this value expands as the runtime system needs memory. It is usually equal to the heap size. However, the value can be bigger than the heap size because previously allocated memory can be released and recycled.


Heap Max. This is the maximum amount of memory that is available to the heap. For the 32-bit system it is 2-gigabytes, which is the maximum amount of memory that can be allocated by the operating system as a single block. However, the memory allocation can fail before 2 gigabytes is reached due to things like memory fragmentation and system memory usage.


III. Malloc Segments Table. EXPL simulates the segment variable feature of DOS-XPL. The Malloc Table shows all the memory allocations for segment variables. Users allocate this memory using the Malloc intrinsic. The table is updated dynamically as you step through the program so you can see exactly how memory is being allocated by your code.


Seg. The first column shows the pseudo "segment address" of the memory allocation. It is the paragraph value that is returned by the Malloc intrinsic.


Size. The second column shows the memory allocation in bytes.


Total Size. This item shows the total, combined segment memory allocation in bytes.