The module
Note that this whole module is experimental, and the representations used as well as the functionality is likely to change in the future.
The
To start an Erlang runtime system with instrumentation, use the
The basic object of study in the case of memory allocation is a memory allocation map. A memory allocation map contains a list of descriptors for each allocated memory block. Currently, a descriptor is a 4-tuple
{TypeNo, Address, Size, PidDesc}
where
Various details about memory allocation:
Memory blocks are allocated both on the heap segment and on other memory
segments. This can cause the instrumentation functionality to report
very large holes. Currently the instrumentation functionality doesn't
provide any support for distinguishing between holes between memory
segments, and holes between allocated blocks inside memory segments.
The current size of the process cannot be obtained from within Erlang,
but can be seen with one of the system statistics tools, e.g.,
Overhead for instrumentation: When the emulator has been started with
the
Sizes presented by the instrumentation functionality are (by the emulator) requested sizes, i.e. neither instrumentation headers nor headers used by allocators are included.
Returns the allocator description of the allocator that
manages memory blocks of type number
Returns the memory block header size used by the emulator that generated the memory allocation map. The block header size may differ between different emulators.
Returns the class description of the class that
the type number
Returns a memory allocation map where the type numbers (first
element of
Prints out the size of each hole (i.e., the space between
allocated blocks) on the terminal. NOTE: Really large holes
are probably holes between memory segments.
The memory allocation map has to be sorted (see
Returns a tuple
Returns
Returns a list of
See the
Reads a memory allocation map from the file
Reads memory allocation status from the file
When
When
NOTE:A memory block is accounted for at
"the first level" allocator. E.g.
Sorts a memory allocation map so that the addresses are in ascending order.
Stores the current memory allocation map on the file
Stores the current memory status on the file
Returns the total size of the memory blocks in the list.
Returns the type description of a type number used in
Returns the memory block type number range used in