Переглянути джерело

Some changes in default GC parameters

Roberto Ierusalimschy 9 місяців тому
батько
коміт
5ffcd458f0
2 змінених файлів з 6 додано та 8 видалено
  1. 1 3
      lgc.c
  2. 5 5
      lgc.h

+ 1 - 3
lgc.c

@@ -1675,7 +1675,7 @@ void luaC_runtilstate (lua_State *L, int state, int fast) {
 */
 static void incstep (lua_State *L, global_State *g) {
   l_mem stepsize = applygcparam(g, STEPSIZE, 100);
-  l_mem work2do = applygcparam(g, STEPMUL, stepsize);
+  l_mem work2do = applygcparam(g, STEPMUL, stepsize / cast_int(sizeof(void*)));
   l_mem stres;
   int fast = (work2do == 0);  /* special case: do a full collection */
   do {  /* repeat until enough work */
@@ -1739,8 +1739,6 @@ static void fullinc (lua_State *L, global_State *g) {
   /* finish any pending sweep phase to start a new cycle */
   luaC_runtilstate(L, GCSpause, 1);
   luaC_runtilstate(L, GCScallfin, 1);  /* run up to finalizers */
-  /* 'marked' must be correct after a full GC cycle */
-  /* lua_assert(g->GCmarked == gettotalobjs(g)); ??? */
   luaC_runtilstate(L, GCSpause, 1);  /* finish collection */
   setpause(g);
 }

+ 5 - 5
lgc.h

@@ -170,7 +170,7 @@
 ** Minor collections will shift to major ones after LUAI_MINORMAJOR%
 ** bytes become old.
 */
-#define LUAI_MINORMAJOR         100
+#define LUAI_MINORMAJOR         70
 
 /*
 ** Major collections will shift to minor ones after a collection
@@ -182,20 +182,20 @@
 ** A young (minor) collection will run after creating LUAI_GENMINORMUL%
 ** new bytes.
 */
-#define LUAI_GENMINORMUL         25
+#define LUAI_GENMINORMUL         20
 
 
 /* incremental */
 
 /* Number of bytes must be LUAI_GCPAUSE% before starting new cycle */
-#define LUAI_GCPAUSE    200
+#define LUAI_GCPAUSE    250
 
 /*
 ** Step multiplier: The collector handles LUAI_GCMUL% work units for
-** each new allocated byte. (Each "work unit" corresponds roughly to
+** each new allocated word. (Each "work unit" corresponds roughly to
 ** sweeping one object or traversing one slot.)
 */
-#define LUAI_GCMUL      40
+#define LUAI_GCMUL      200
 
 /* How many bytes to allocate before next GC step */
 #define LUAI_GCSTEPSIZE	(200 * sizeof(Table))