mirror of
https://github.com/lua/lua.git
synced 2025-01-14 05:43:00 +08:00
Some changes in default GC parameters
This commit is contained in:
parent
9b01da97e3
commit
5ffcd458f0
4
lgc.c
4
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) {
|
static void incstep (lua_State *L, global_State *g) {
|
||||||
l_mem stepsize = applygcparam(g, STEPSIZE, 100);
|
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;
|
l_mem stres;
|
||||||
int fast = (work2do == 0); /* special case: do a full collection */
|
int fast = (work2do == 0); /* special case: do a full collection */
|
||||||
do { /* repeat until enough work */
|
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 */
|
/* finish any pending sweep phase to start a new cycle */
|
||||||
luaC_runtilstate(L, GCSpause, 1);
|
luaC_runtilstate(L, GCSpause, 1);
|
||||||
luaC_runtilstate(L, GCScallfin, 1); /* run up to finalizers */
|
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 */
|
luaC_runtilstate(L, GCSpause, 1); /* finish collection */
|
||||||
setpause(g);
|
setpause(g);
|
||||||
}
|
}
|
||||||
|
10
lgc.h
10
lgc.h
@ -170,7 +170,7 @@
|
|||||||
** Minor collections will shift to major ones after LUAI_MINORMAJOR%
|
** Minor collections will shift to major ones after LUAI_MINORMAJOR%
|
||||||
** bytes become old.
|
** bytes become old.
|
||||||
*/
|
*/
|
||||||
#define LUAI_MINORMAJOR 100
|
#define LUAI_MINORMAJOR 70
|
||||||
|
|
||||||
/*
|
/*
|
||||||
** Major collections will shift to minor ones after a collection
|
** Major collections will shift to minor ones after a collection
|
||||||
@ -182,20 +182,20 @@
|
|||||||
** A young (minor) collection will run after creating LUAI_GENMINORMUL%
|
** A young (minor) collection will run after creating LUAI_GENMINORMUL%
|
||||||
** new bytes.
|
** new bytes.
|
||||||
*/
|
*/
|
||||||
#define LUAI_GENMINORMUL 25
|
#define LUAI_GENMINORMUL 20
|
||||||
|
|
||||||
|
|
||||||
/* incremental */
|
/* incremental */
|
||||||
|
|
||||||
/* Number of bytes must be LUAI_GCPAUSE% before starting new cycle */
|
/* 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
|
** 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.)
|
** sweeping one object or traversing one slot.)
|
||||||
*/
|
*/
|
||||||
#define LUAI_GCMUL 40
|
#define LUAI_GCMUL 200
|
||||||
|
|
||||||
/* How many bytes to allocate before next GC step */
|
/* How many bytes to allocate before next GC step */
|
||||||
#define LUAI_GCSTEPSIZE (200 * sizeof(Table))
|
#define LUAI_GCSTEPSIZE (200 * sizeof(Table))
|
||||||
|
Loading…
x
Reference in New Issue
Block a user