Commit graph

935 commits

Author SHA1 Message Date
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