mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-07-06 11:34:38 +03:00
improve handling of huge pages in the cache
This commit is contained in:
parent
43568fa422
commit
cd7aa0ce83
5 changed files with 86 additions and 39 deletions
|
@ -32,6 +32,7 @@ uintptr_t _mi_random_init(uintptr_t seed /* can be zero */);
|
|||
// "os.c"
|
||||
bool _mi_os_reset(void* p, size_t size);
|
||||
void* _mi_os_alloc(size_t size, mi_stats_t* stats);
|
||||
bool _mi_os_shrink(void* p, size_t oldsize, size_t newsize);
|
||||
void _mi_os_free(void* p, size_t size, mi_stats_t* stats);
|
||||
bool _mi_os_protect(void* addr, size_t size);
|
||||
bool _mi_os_unprotect(void* addr, size_t size);
|
||||
|
|
|
@ -370,9 +370,10 @@ typedef struct mi_segment_queue_s {
|
|||
// Segments thread local data
|
||||
typedef struct mi_segments_tld_s {
|
||||
mi_segment_queue_t small_free; // queue of segments with free small pages
|
||||
size_t count; // current number of segments
|
||||
size_t peak; // peak number of segments
|
||||
size_t current_size; // current size of all segments
|
||||
size_t peak_size; // peak size of all segments
|
||||
size_t cache_count; // number of segments in the cache
|
||||
size_t cache_size; // total size of all segments in the cache
|
||||
mi_segment_queue_t cache; // (small) cache of segments for small and large pages (to avoid repeated mmap calls)
|
||||
mi_stats_t* stats; // points to tld stats
|
||||
} mi_segments_tld_t;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue