Sergiy Kuryata
6a7b0ff591
Implement free space mask for abandoned segments at the arena level
2025-01-26 17:11:16 -08:00
Sergiy Kuryata
94bdbe41bb
Add debug version to verify that correct build is used for testing
2025-01-08 10:20:26 -08:00
Sergiy Kuryata
5e16662cd4
Remove unused counters
2025-01-07 09:06:56 -08:00
Sergiy Kuryata
ad18e02994
Various performance tuning
2025-01-04 16:49:14 -08:00
Sergiy Kuryata
277abfeb48
Merge branch 'dev-slice-sk' of https://github.com/microsoft/mimalloc into dev-slice-sk
2024-12-28 11:48:51 -08:00
Sergiy Kuryata
08eee6ae82
Disable forced purge for abandoned segments
2024-12-28 11:46:30 -08:00
Sergiy Kuryata
c8faa8b0fb
Ensure large and medium segments are droped when allocating a new
...
segment for medium and large objects
2024-12-19 07:52:30 -08:00
Sergiy Kuryata
df48b8b6c9
Ensure large and medium segments are droped when allocating a new
...
segment for medium and large objects
2024-12-17 13:17:28 -08:00
Sergiy Kuryata
f01f882dd6
Better handling for abandonded segments
2024-12-11 17:59:29 -08:00
Sergiy Kuryata
008bec3013
Clear out small object free space in large segments Part 2
2024-12-10 16:37:24 -08:00
Sergiy Kuryata
47edd8bd81
Clear out small object free space in large segments
2024-12-10 13:34:23 -08:00
Sergiy Kuryata
340f2a74bb
Handle medium allocation in dedicated segments
2024-12-09 21:37:27 -08:00
Sergiy Kuryata
897f818f8d
Disable detailed allocation counters
2024-12-08 21:20:46 -08:00
Sergiy Kuryata
5e7780cfbc
Hanlde large allocations while droping excess of segments
2024-12-07 17:32:00 -08:00
Sergiy Kuryata
d19f103ea3
Handle large allocations in separate segments
2024-12-05 19:44:52 -08:00
Sergiy Kuryata
a9bd3205be
Try separating pages with different slice counts
2024-12-04 23:21:43 -08:00
Sergiy Kuryata
8dd6460d5e
Do not discard segments for large object allocations
2024-11-30 18:44:35 -08:00
Sergiy Kuryata
0be44b2b0f
Add global counters for segments and allocation stats
2024-11-26 16:32:54 -08:00
Sergiy Kuryata
75eec9e61d
Fix free space mask accounting for unused slices
2024-11-19 18:41:30 -08:00
Sergiy Kuryata
02f3e0fe7a
Switch to 64bit bitmask and bug fixes
2024-11-08 17:35:14 -08:00
Sergiy Kuryata
d67fe5d26a
Rotate through arenas in mi_arenas_try_purge instead of always purging arena 0 if visit_all is false.
2024-11-05 13:00:50 -08:00
Sergiy Kuryata
2a3b8eb696
Do not call mi_abandoned_collect on allocation path as it consumes substantial amount of CPU time
2024-11-04 21:22:45 -08:00
Sergiy Kuryata
911de68d3e
Experimental optimization for the segment reclamation logic.
...
The goal is to improve efficiency of finding an abandoned segment that contains free space of the required size.
This change adds a free space bitmask to the segment object. More optimal place for the bitmask could be in the arena (i.e. extend the arena’s bitmask for abandoned segments to include size information too).
2024-10-31 16:53:14 -07:00
Sergiy Kuryata
b604099334
Experimental improvements to reduce memory usage
...
1. Prefer to use more loaded pages when allocating
2. Add an option to restrict unbounded heap growth and allow the excessive memory allocations to be re-used by other threads
2024-10-11 10:35:51 -07:00
Daan
8c532c32c3
Merge branch 'dev' into dev-slice
v2.1.7
2024-05-21 12:25:21 -07:00