H5_SET_FREE_LIST_LIMITS sets size limits on all types of free lists. The HDF5 library uses free lists internally to manage memory. The types of free lists used are as follows:
- Regular free lists manage memory for single internal data structures.
- Array free lists manage memory for arrays of internal data structures.
- Block free lists manage memory for arbitrarily-sized blocks of bytes.
- Factory free lists manage memory for fixed-size blocks of bytes.
The parameters specify global and per-list limits; for example,
reg_list_limit limit the accumulated size of all regular free lists and the size of each individual regular free list, respectively. Therefore, if an application sets a 1Mb limit on each of the global lists, up to 4Mb of total storage might be allocated, 1Mb for each of the regular, array, block, and factory type lists.
The settings specified for block free lists are duplicated for factory free lists. Therefore, increasing the global limit on block free lists by x bytes will increase the potential free list memory usage by 2x bytes.
Using a value of
-1 for a limit means that no limit is set for the specified type of free list.