increase minimal commit size to 8*slice-size and add decommit_extend_delay as option

This commit is contained in:
daan 2022-02-04 16:11:38 -08:00
parent fb418831df
commit 0e2df71829
3 changed files with 5 additions and 3 deletions

View File

@ -320,10 +320,10 @@ typedef enum mi_segment_kind_e {
// the corresponding MI_COMMIT_SIZE area is committed. // the corresponding MI_COMMIT_SIZE area is committed.
// The MI_COMMIT_SIZE must be a multiple of the slice // The MI_COMMIT_SIZE must be a multiple of the slice
// size. If it is equal we have the most fine grained // size. If it is equal we have the most fine grained
// decommit (but in practice 2x seems to perform better). // decommit but setting it higher can be more efficient.
// ------------------------------------------------------ // ------------------------------------------------------
#define MI_COMMIT_SIZE (MI_SEGMENT_SLICE_SIZE) #define MI_COMMIT_SIZE (8*MI_SEGMENT_SLICE_SIZE)
#define MI_COMMIT_MASK_BITS (MI_SEGMENT_SIZE / MI_COMMIT_SIZE) #define MI_COMMIT_MASK_BITS (MI_SEGMENT_SIZE / MI_COMMIT_SIZE)
#define MI_COMMIT_MASK_FIELD_BITS MI_SIZE_BITS #define MI_COMMIT_MASK_FIELD_BITS MI_SIZE_BITS
#define MI_COMMIT_MASK_FIELD_COUNT (MI_COMMIT_MASK_BITS / MI_COMMIT_MASK_FIELD_BITS) #define MI_COMMIT_MASK_FIELD_COUNT (MI_COMMIT_MASK_BITS / MI_COMMIT_MASK_FIELD_BITS)

View File

@ -328,6 +328,7 @@ typedef enum mi_option_e {
mi_option_max_warnings, mi_option_max_warnings,
mi_option_allow_decommit, mi_option_allow_decommit,
mi_option_segment_decommit_delay, mi_option_segment_decommit_delay,
mi_option_decommit_extend_delay,
_mi_option_last _mi_option_last
} mi_option_t; } mi_option_t;

View File

@ -92,7 +92,8 @@ static mi_option_desc_t options[_mi_option_last] =
{ 16, UNINIT, MI_OPTION(max_errors) }, // maximum errors that are output { 16, UNINIT, MI_OPTION(max_errors) }, // maximum errors that are output
{ 16, UNINIT, MI_OPTION(max_warnings) }, // maximum warnings that are output { 16, UNINIT, MI_OPTION(max_warnings) }, // maximum warnings that are output
{ 1, UNINIT, MI_OPTION(allow_decommit) }, // decommit slices when no longer used (after decommit_delay milli-seconds) { 1, UNINIT, MI_OPTION(allow_decommit) }, // decommit slices when no longer used (after decommit_delay milli-seconds)
{ 500, UNINIT, MI_OPTION(segment_decommit_delay) } // decommit delay in milli-seconds for freed segments { 500, UNINIT, MI_OPTION(segment_decommit_delay) }, // decommit delay in milli-seconds for freed segments
{ 2, UNINIT, MI_OPTION(decommit_extend_delay) }
}; };
static void mi_option_init(mi_option_desc_t* desc); static void mi_option_init(mi_option_desc_t* desc);