diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2020-03-18 22:24:19 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2020-03-18 22:24:19 -0700 |
commit | 0b11f11008362eafbce5b5211fc86766342f514a (patch) | |
tree | 2f0964b57c5607a4aa07ed8962068d986a6affe1 /gc.c | |
parent | fa14bd3eccbd211c16dc7ecc06d3132f9f9539a2 (diff) | |
download | txr-0b11f11008362eafbce5b5211fc86766342f514a.tar.gz txr-0b11f11008362eafbce5b5211fc86766342f514a.tar.bz2 txr-0b11f11008362eafbce5b5211fc86766342f514a.zip |
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.
Diffstat (limited to 'gc.c')
-rw-r--r-- | gc.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -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)) |