luajit 使用过多内存后出现运行错误

我的程序嵌入了 luajit。它大部分时间都能正常运行。但是当它使用过多内存之后,它开始出现一些逻辑错误,例如 > 的结果将会错误。 如何找到并解决这个问题?

我的程序使用了 lua,多年来一直运行良好。我最近将其改为了 luajit。 我的程序使用 gcc 4.7 构建,并在 debian 7 上运行。该程序使用了 -DLUAJIT_ENABLE_GC64

tt = {}
for i = 1, 10000000 do
    local k = string.format( "1kkkk%d" , i )
    local v = string.format( "1vvv%d" , i )
    tt[k] = v
end

程序使用过多内存后,它会在不久的将来导致错误。例如,在运行上述代码之后:

local nNum = 10
assert( nNum > 0 )

assert 会报错。其它代码也可能会报错。错误会随处出现,每一段代码都很可能出错。

点赞