mirror of
https://github.com/microsoft/mimalloc.git
synced 2024-12-28 22:05:40 +08:00
increase minimal commit size to 8*slice-size and add decommit_extend_delay as option
This commit is contained in:
parent
fb418831df
commit
0e2df71829
@ -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)
|
||||||
|
@ -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;
|
||||||
|
|
||||||
|
@ -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);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user