我运行这个简单的循环来转储 lua 内存使用和堆,同时用对象填充数组 - 非常容易重现。
为什么它会在仍有大约 5kb 堆可用的情况下耗尽内存?我原以为它会在 100 以下时中断,因为添加到集合中的每个新创建的对象仅使用 48 个字节。
任何想法?这是一个错误吗?
代码:
全选> a={} for i=1,1000 do print(i,collectgarbage(\'count\'),node.heap()) a
={} tmr.wdclr() end
1 5.2666015625 21664
2 5.3447265625 21528
3 5.3759765625 21480
...
256 17.2666015625 5056
257 17.2978515625 5008
258 17.3291015625 4960
not enough memory