From 8e346d875ac1555bb3b008c99130792855a757a8 Mon Sep 17 00:00:00 2001 From: Roberto Ierusalimschy Date: Fri, 14 Jan 2005 12:21:16 -0200 Subject: [PATCH] auxiliar patch to monitor garbage collection --- lmem.c | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/lmem.c b/lmem.c index f2a70d0f..d48bc09e 100644 --- a/lmem.c +++ b/lmem.c @@ -1,5 +1,5 @@ /* -** $Id: lmem.c,v 1.66 2004/11/19 15:52:40 roberto Exp roberto $ +** $Id: lmem.c,v 1.67 2004/12/01 15:46:18 roberto Exp roberto $ ** Interface to Memory Manager ** See Copyright Notice in lua.h */ @@ -81,6 +81,22 @@ void *luaM_realloc_ (lua_State *L, void *block, size_t osize, size_t nsize) { luaD_throw(L, LUA_ERRMEM); lua_assert((nsize == 0) == (block == NULL)); g->totalbytes = (g->totalbytes - osize) + nsize; +#if 0 + { /* auxiliar patch to monitor garbage collection */ + static unsigned long total = 0; /* our "time" */ + static lu_mem last = 0; /* last totalmem that generated an output */ + static FILE *f = NULL; /* output file */ + if (nsize <= osize) total += 1; /* "time" always grow */ + else total += (nsize - osize); + if ((int)g->totalbytes - (int)last > 1000 || + (int)g->totalbytes - (int)last < -1000) { + last = g->totalbytes; + if (f == NULL) f = fopen("trace", "w"); + fprintf(f, "%lu %u %u %u %d\n", total, g->totalbytes, g->GCthreshold, + g->estimate, g->gcstate); + } + } +#endif return block; }