From e29f3a57511565caf117cf3c2e5e4ed8f22869cb Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Wed, 23 May 2012 12:43:14 -0300 Subject: definition of 'GCSTEPSIZE' moved to header file + small changes --- lgc.c | 7 ++----- lgc.h | 16 +++++++++++----- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/lgc.c b/lgc.c index 04eb0278..fc888d04 100644 --- a/lgc.c +++ b/lgc.c @@ -1,5 +1,5 @@ /* -** $Id: lgc.c,v 2.126 2012/05/22 17:50:39 roberto Exp roberto $ +** $Id: lgc.c,v 2.127 2012/05/22 18:38:56 roberto Exp roberto $ ** Garbage Collector ** See Copyright Notice in lua.h */ @@ -24,11 +24,8 @@ -/* how much to allocate before next GC step */ -#define GCSTEPSIZE (cast_int(256 * sizeof(void*))) - /* cost of sweeping one element (half the size of a small object) */ -#define GCSWEEPCOST ((sizeof(TString) + 2) / 2) +#define GCSWEEPCOST ((sizeof(TString) + 4) / 2) /* maximum number of elements to sweep in each single step */ #define GCSWEEPMAX (cast_int((GCSTEPSIZE / GCSWEEPCOST) / 4)) diff --git a/lgc.h b/lgc.h index f1c5eec5..282336c7 100644 --- a/lgc.h +++ b/lgc.h @@ -1,5 +1,5 @@ /* -** $Id: lgc.h,v 2.54 2012/05/11 19:22:33 roberto Exp roberto $ +** $Id: lgc.h,v 2.55 2012/05/21 13:18:10 roberto Exp roberto $ ** Garbage Collector ** See Copyright Notice in lua.h */ @@ -20,13 +20,19 @@ ** is that a black object can never point to a white one. Moreover, ** any gray object must be in a "gray list" (gray, grayagain, weak, ** allweak, ephemeron) so that it can be visited again before finishing -** the collection cycle. (These rule does not apply to strings, -** which are never black but do not need to be visited again.) -** These lists have no meaning when the invariant is not being enforced -** (e.g., sweep phase). +** the collection cycle. These lists have no meaning when the invariant +** is not being enforced (e.g., sweep phase). */ + +/* how much to allocate before next GC step */ +#if !defined(GCSTEPSIZE) +/* ~100 small strings */ +#define GCSTEPSIZE (cast_int(100 * sizeof(TString))) +#endif + + /* ** Possible states of the Garbage Collector */ -- cgit v1.2.3-55-g6feb