Language Environment heap
storage, other than what is explicitly defined using THREADHEAP, is
managed at the enclave level. Each enclave has its own heap-type resources,
which are shared by the threads that execute within the enclave. Heap
storage defined using THREADHEAP is controlled at the thread level.
Table 1 describes the fields
in the storage report that contain various statistics about heap storage.
These statistics, in all cases, specify totals for the whole enclave.
For THREADHEAP, they indicate the total across all threads in the
enclave.
Table 1. Storage report fields that display heap storage
statisticsStatistics categories |
Field contents |
THREADHEAP |
- Initial size
- Default initial allocation, as specified by the corresponding
runtime option. For HEAP24, the initial size is the value of the initsz24 of
the HEAP option.
- Increment size
- Minimum incremental allocation, as specified by the corresponding
runtime option. For HEAP24, the increment size is the value of the incrsz24 of
the HEAP option.
- Maximum used by all concurrent threads
- Maximum total amount used by all concurrent threads at any one
time.
- Largest used by any thread
- Largest amount used by any single thread
- Successful Get Heap requests
- Number of Get Heap requests.
- Successful Free Heap requests
- Number of Free Heap requests.
- Number of segments allocated
- Number of incremental segments allocated.
- Number of segments freed
- Number of incremental segments individually freed.
|
- HEAP
- HEAP24
- ANYHEAP
- BELOWHEAP
|
- Initial size
- Default initial allocation, as specified by the corresponding
runtime option. For HEAP24, the initial size is the value of the initsz24 of
the HEAP option.
- Increment size
- Minimum incremental allocation, as specified by the corresponding
runtime option. For HEAP24, the increment size is the value of the incrsz24 of
the HEAP option..
- Total heap storage used
- Largest total amount used by the enclave at any one time.
- Successful Get Heap requests
- Number of Get Heap requests.
- Successful Free Heap requests
- Number of Free Heap requests. The number of Free Heap requests
could be less than the number of Get Heap requests if the pieces of
heap storage acquired by individual Get Heap requests were not freed
individually, but rather were freed implicitly in the course of enclave
termination.
- Number of segments allocated
- Number of incremental segments allocated.
- Number of segments freed
- Number of incremental segments individually freed. The number
of incremental segments individually freed could be less than the
number allocated if the segments were not freed individually, but
rather were freed implicitly in the course of enclave termination.
|
Additional heap statistics |
Besides the fixed types of heap, additional
types of heap can be created, each with its own heap ID. You can create
and discard these additional types of heap by using the CEECRHP callable
service. - Successful Create Heap requests
- Number of successful Create Heap requests.
- Successful Discard Heap requests
- Number of successful Discard Heap requests. The number of Discard
Heap requests could be less than the number of Create Heap requests
if the special heaps allocated by individual Create Heap requests
were not freed individually, but rather were freed implicitly in the
course of enclave termination.
- Total heap storage used
- Largest total amount used by the enclave at any one time.
- Successful Get Heap requests
- Number of Get Heap requests.
- Successful Free Heap requests
- Number of Free Heap requests.
- Number of segments allocated
- Number of incremental segments allocated.
- Number of segments freed
- Number of incremental segments individually freed.
|