mirror of
https://github.com/microsoft/mimalloc.git
synced 2025-07-06 19:38:41 +03:00
add minimal commit size for increased efficiency (decommit fine grained, commit coarse grained)
This commit is contained in:
parent
9ca363d0e4
commit
e11100a137
2 changed files with 12 additions and 4 deletions
|
@ -470,17 +470,20 @@ static void mi_segment_commit_mask(mi_segment_t* segment, bool conservative, uin
|
|||
if (p >= (uint8_t*)segment + segsize) return;
|
||||
|
||||
size_t diff = (p - (uint8_t*)segment);
|
||||
mi_assert_internal(diff + size <= segsize);
|
||||
|
||||
size_t start;
|
||||
size_t end;
|
||||
if (conservative) {
|
||||
// decommit conservative
|
||||
start = _mi_align_up(diff, MI_COMMIT_SIZE);
|
||||
end = _mi_align_down(diff + size, MI_COMMIT_SIZE);
|
||||
}
|
||||
else {
|
||||
// commit liberal
|
||||
start = _mi_align_down(diff, MI_COMMIT_SIZE);
|
||||
end = _mi_align_up(diff + size, MI_COMMIT_SIZE);
|
||||
end = _mi_align_up(diff + size, MI_MINIMAL_COMMIT_SIZE);
|
||||
}
|
||||
mi_assert_internal(end <= segsize);
|
||||
if (end > segsize) {
|
||||
end = segsize;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue