Sergiy Kuryata
340f2a74bb
Handle medium allocation in dedicated segments
2024-12-09 21:37:27 -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
0be44b2b0f
Add global counters for segments and allocation stats
2024-11-26 16:32:54 -08:00
Sergiy Kuryata
02f3e0fe7a
Switch to 64bit bitmask and bug fixes
2024-11-08 17:35:14 -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
998401b6d7
Merge branch 'dev' into dev-slice
2024-05-21 11:58:10 -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
1462cc4e9a
Merge branch 'dev' into dev-slice
2024-05-19 15:43: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
c48a21215b
fix arm64 windows compilation, upstream of python/cpython#111527
2024-05-18 16:41:39 -07:00
daanx
937fd19338
comment
2024-05-18 16:32:10 -07:00
Daan
1daa4ea627
Merge branch 'dev' into dev-slice
2024-05-18 10:01:31 -07:00
daanx
1b21415dfa
make retry on oom an option; revise size options to not overflow the long
2024-05-18 09:56:02 -07:00
Daan
69f81732f8
merge from dev, bump version to v2.1.7
2024-05-16 19:07:14 -07:00
Daan
5eb29e971b
bump version to 1.8.7 for further development
2024-05-16 18:52:29 -07:00
Daan
c27b7c4fae
Merge branch 'dev' into dev-slice
2024-05-16 14:41:21 -07:00
Daan
a38c8dd0f9
rename must_free_whole -> has_partial_free
2024-05-16 14:41:10 -07:00
Daan
7b2e9c6e77
bump version to v2.1.6
2024-05-13 09:17:04 -07:00
Daan
9e721e564a
bump version to v1.8.6
2024-05-13 09:16:26 -07:00
Daan
f94f101d22
Merge branch 'dev' into dev-slice
2024-05-13 09:02:51 -07:00
Daan
13e519202a
fix comments; nicer strdup/strndup
2024-05-13 09:02:40 -07:00
Daan
b1ec1d5e5a
refactor aligned allocation
2024-05-11 07:22:56 -07:00
Daan
e8206e9f6f
merge from dev improved aligned allocation
2024-05-11 07:08:48 -07:00
Daan
7128db7bba
simplified aligned allocation; improved codegen; fix mi_good_size with padding included; add MI_MAX_ALIGN_GUARANTEE
2024-05-11 06:43:52 -07:00
Daan
6c5d6e1f72
fix max allocation size on 32-bit systems (issue #882 )
2024-05-10 17:24:52 -07:00
Daan
3b4c61b4cf
Merge branch 'dev' into dev-slice
2024-05-10 17:11:21 -07:00
Daan
1ebc28a8ff
update comment
2024-05-10 15:58:37 -07:00
Daan
bc5dca39ba
Merge branch 'dev' into dev-slice
2024-04-26 23:40:45 -07:00
Daan
cc3c14f2ed
use builtin_thread_pointer only on non-apple arm64 (issue #883 and #851 )
2024-04-26 23:34:10 -07:00
Daan
bbcfe0f6c7
Merge branch 'dev' into dev-slice
2024-04-24 19:48:16 -07:00
Daan
146f9d2333
make TLS slot default instead of __builtin_thread_pointer. Potentially fixes build errors on various platforms (see issue #883 )
2024-04-24 19:48:04 -07:00
Daan
45de947be5
bump version to 2.1.5 for further development
2024-04-22 11:26:15 -07:00
Daan
77eb3a366b
bump version to 1.8.5 for further development
2024-04-22 11:25:26 -07:00
Daan
6ba166f528
merge from dev
2024-04-22 11:05:01 -07:00
Daan
a527f75161
add disallow_arena_alloc option
2024-04-22 10:10:20 -07:00
Daan
79aa5bbb7a
Merge branch 'dev' into dev-slice
2024-04-20 19:59:19 -07:00
Daan
204348e468
only define WIN32_LEAN_AND_MEAN if needed
2024-04-20 16:58:58 -07:00
Daan
70782c3670
merge from dev
2024-04-20 16:47:48 -07:00
Daan
7247b9e326
allow configuring page and segment sizes (pr #753 and pr #862 )
2024-04-20 16:45:49 -07:00
Daan
336f83fbd1
use __builtin_thread_pointer on arm64 with older gcc compilers (issue #851 )
2024-04-20 16:09:45 -07:00