Commit Graph
2774 Commits
Author SHA1 Message Date
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