lua-users home
lua-l archive

[Date Prev][Date Next][Thread Prev][Thread Next] [Date Index] [Thread Index]


Yes I'm on 32-bit debian linux, the maximum usable memory per process is 3GB.

On 2012/8/13 20:55, Patrick Rapin wrote:
When memory usage exceeds 2G, each call to lua_gc(LUA_GCSTEP)
becomes a full gc cycle (retval = 1).

#define setthreshold(g)  (g->GCthreshold = (g->estimate/100) * g->gcpause)

Are you on a 32-bit or 64-bit platform ?
On a 32-bit platform, it is impossible or unreasonable to use more
that 2 GiB of memory in a application.
On a 64-bit platform, it should already work according to my analysis.
Both GCthreshold and estimate fields of struct global_State are of
type lu_mem == LUAI_UMEM, which should be defined as size_t (64 bit
integer) on a 64-bit platform. So the computation should be performed
in 64 bits and no overflow possible.