From 0b11f11008362eafbce5b5211fc86766342f514a Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Wed, 18 Mar 2020 22:24:19 -0700 Subject: gc: small memory support. * configure (small_mem): New variable. Provide help text and show default value of --small-mem option. Generate CONFIG_SMALL_MEM in config.h. * gc.c (HEAP_SIZE, CHECKOBJ_VEC_SIZE, MUTOBJ_VEC_SIZE, FULL_GC_INTERVAL, FRESHOBJ_VEC_SIZE, DFL_MALLOC_DELTA_THRESH): Define conservative values of these constants if CONFIG_SMALL_MEM is in effect. --- gc.c | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'gc.c') diff --git a/gc.c b/gc.c index f3a354c6..df9de0fb 100644 --- a/gc.c +++ b/gc.c @@ -46,12 +46,22 @@ #include "unwind.h" #define PROT_STACK_SIZE 1024 + +#if CONFIG_SMALL_MEM +#define HEAP_SIZE 4096 +#define CHECKOBJ_VEC_SIZE HEAP_SIZE +#define MUTOBJ_VEC_SIZE HEAP_SIZE +#define FULL_GC_INTERVAL 20 +#define FRESHOBJ_VEC_SIZE (2 * HEAP_SIZE) +#define DFL_MALLOC_DELTA_THRESH (16L * 1024 * 1024) +#else #define HEAP_SIZE 16384 #define CHECKOBJ_VEC_SIZE (2 * HEAP_SIZE) #define MUTOBJ_VEC_SIZE (2 * HEAP_SIZE) #define FULL_GC_INTERVAL 40 #define FRESHOBJ_VEC_SIZE (8 * HEAP_SIZE) #define DFL_MALLOC_DELTA_THRESH (64L * 1024 * 1024) +#endif #if HAVE_MEMALIGN || HAVE_POSIX_MEMALIGN #define OBJ_ALIGN (sizeof (obj_t)) -- cgit v1.2.3