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
2024-05-21 12:25:21 -07:00
Daan
1f3ecec2e5
update readme
2024-05-21 12:25:13 -07:00
Daan
b907d76439
Merge branch 'dev' into dev-slice
2024-05-21 12:15:00 -07:00
Daan
4aa97336f7
remove the need for cmake patch in vcpkg port
2024-05-21 12:06:52 -07:00
Daan
998401b6d7
Merge branch 'dev' into dev-slice
2024-05-21 11:58:10 -07:00
Daan
bd04cec1c4
roll back export ignore on the bin directory as it needed by vcpkg (et al) to build on Windows
2024-05-21 11:57:52 -07:00
Daan
836ee0a94c
add alpine docker files
2024-05-19 21:32:22 -07:00
daanx
d5ac4f7b95
add example docker file for testing on manylinux-x64
2024-05-19 20:42:58 -07:00
daanx
b9b321d328
use _builtin_thread_pointer also on gcc 11-x64 and clang-14-x64
2024-05-19 20:42:28 -07:00
Daan
d6ad058e44
Merge pull request #897 from madsmtm/patch-1
...
macOS: Fix linking statically
2024-05-19 15:49:50 -07:00
Daan
1462cc4e9a
Merge branch 'dev' into dev-slice
2024-05-19 15:43:26 -07:00
Daan
9cd7e4cc68
rename library check to find_link_library
2024-05-19 15:43:15 -07:00
Daan
f739e4f2c3
check all link libraries (pthread, rt, and atomic) via check_linker_flag first before using find_library (see also issue #898
2024-05-19 15:38:26 -07:00
Daan
03224e17a0
bump cmake required version to 3.18 and detect libatomic more reliably, see pr #898
2024-05-19 13:25:31 -07:00
Daan
7ea7296d3e
add malloc_good_size override maacro, see issue #900 and pr #901
2024-05-19 12:03:55 -07:00
Daan
65a0c82ac9
merge from dev (support for heap tag, upstream of python/cpython#113742
2024-05-19 08:10:35 -07:00
Daan
0c4041fa53
add support for custom heap and page tags, upstream of python/cpython#113742
2024-05-19 08:06:32 -07:00
Daan
b822a44cfe
merge from dev, upstream of python/cpython#113263
2024-05-18 17:47:07 -07:00
Daan
710d6138c7
refactor thread meta-data initilazation, upstream of python/cpython#113263
2024-05-18 17:42:47 -07:00
Daan
66052f135f
allow custom thread id, upstream of python/cpython#115488 )
2024-05-18 17:05:13 -07:00
Daan
d4a7c0ffcc
merge from dev
2024-05-18 16:57:35 -07:00
daanx
381da05d8a
make mimalloc includes relative to the current file, upstream of python/cpython#113141
2024-05-18 16:48:58 -07:00
daanx
92a8268fa4
make warning an trace message if we cannot allocate at a hinted address, upstream of python/cpython#113372
2024-05-18 16:45:23 -07:00
daanx
c48a21215b
fix arm64 windows compilation, upstream of python/cpython#111527
2024-05-18 16:41:39 -07:00
daanx
999b31fea6
allow syscall include on FreeBSD as well
2024-05-18 16:39:04 -07:00
daanx
87c4012f13
make syscall test in primitives positive and avoid unused function warnings. upstream python/cpython#111907 , python/cpython#111593 , python/cpython#117548
2024-05-18 16:37:40 -07:00