summaryrefslogtreecommitdiff
path: root/include/mimalloc-types.h
diff options
context:
space:
mode:
authordaan <daanl@outlook.com>2021-11-14 16:51:41 -0800
committerdaan <daanl@outlook.com>2021-11-14 16:52:10 -0800
commitf412df7a2b64421e1f1d61fde6055a6ea288e8f5 (patch)
treee6679d6dd1258a804b1544d346213d19797a8532 /include/mimalloc-types.h
parent5a1c3c8a4a75166cd7c2734fef4bb45d9f865632 (diff)
make segment size smaller on 32-bit
Diffstat (limited to 'include/mimalloc-types.h')
-rw-r--r--include/mimalloc-types.h9
1 files changed, 7 insertions, 2 deletions
diff --git a/include/mimalloc-types.h b/include/mimalloc-types.h
index 068513b..6899062 100644
--- a/include/mimalloc-types.h
+++ b/include/mimalloc-types.h
@@ -128,9 +128,14 @@ typedef int32_t mi_ssize_t;
// ------------------------------------------------------
// Main tuning parameters for segment and page sizes
-// Sizes for 64-bit, divide by two for 32-bit
-#define MI_SEGMENT_SLICE_SHIFT (13 + MI_INTPTR_SHIFT) // 64KiB
+// Sizes for 64-bit (usually divide by two for 32-bit)
+#define MI_SEGMENT_SLICE_SHIFT (13 + MI_INTPTR_SHIFT) // 64KiB (32KiB on 32-bit)
+
+#if MI_INTPTR_SIZE > 4
#define MI_SEGMENT_SHIFT (10 + MI_SEGMENT_SLICE_SHIFT) // 64MiB
+#else
+#define MI_SEGMENT_SHIFT ( 7 + MI_SEGMENT_SLICE_SHIFT) // 4MiB on 32-bit
+#endif
#define MI_SMALL_PAGE_SHIFT (MI_SEGMENT_SLICE_SHIFT) // 64KiB
#define MI_MEDIUM_PAGE_SHIFT ( 3 + MI_SMALL_PAGE_SHIFT) // 512KiB