diff options
author | Neil Fortner <nfortne2@hdfgroup.org> | 2009-04-08 18:55:01 (GMT) |
---|---|---|
committer | Neil Fortner <nfortne2@hdfgroup.org> | 2009-04-08 18:55:01 (GMT) |
commit | 3367137ba6cd13ec48277b13bdf31006f077772d (patch) | |
tree | 970edcc5c9ffc241e12bba93b249b5dfb25952f9 /src/H5.c | |
parent | 48b127f628725a89a79dbaa95a784501383d6259 (diff) | |
download | hdf5-3367137ba6cd13ec48277b13bdf31006f077772d.zip hdf5-3367137ba6cd13ec48277b13bdf31006f077772d.tar.gz hdf5-3367137ba6cd13ec48277b13bdf31006f077772d.tar.bz2 |
[svn-r16703] Purpose: Improve performance of factory free lists.
Description:
Factory free lists were formerly implemented as block free lists. This was
inefficient as factories can only be one size, and implementing them as blocks
(which can be variable size) wasted computation and space. They have been
rewritten with a separate implementation, which is simlar to regular free lists
except they can be dynamically created and destroyed.
Tested: jam, linew, smirom (h5committest)
Diffstat (limited to 'src/H5.c')
-rw-r--r-- | src/H5.c | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -409,6 +409,9 @@ done: * global lists, up to 3 MB of total storage might be allocated (1MB on * each of regular, array and block type lists). * + * The settings for block free lists are duplicated to factory free lists. + * Factory free list limits cannot be set independently currently. + * * Parameters: * int reg_global_lim; IN: The limit on all "regular" free list memory used * int reg_list_lim; IN: The limit on memory used in each "regular" free list @@ -424,7 +427,9 @@ done: * Programmer: Quincey Koziol * Wednesday, August 2, 2000 * - * Modifications: + * Modifications: Neil Fortner + * Wednesday, April 8, 2009 + * Added support for factory free lists * *------------------------------------------------------------------------- */ @@ -439,7 +444,8 @@ H5set_free_list_limits(int reg_global_lim, int reg_list_lim, int arr_global_lim, arr_list_lim, blk_global_lim, blk_list_lim); /* Call the free list function to actually set the limits */ - if(H5FL_set_free_list_limits(reg_global_lim, reg_list_lim, arr_global_lim, arr_list_lim, blk_global_lim, blk_list_lim)<0) + if(H5FL_set_free_list_limits(reg_global_lim, reg_list_lim, arr_global_lim, arr_list_lim, + blk_global_lim, blk_list_lim, blk_global_lim, blk_list_lim)<0) HGOTO_ERROR(H5E_RESOURCE, H5E_CANTSET, FAIL, "can't set garbage collection limits") done: |