【问题标题】:Lua Table Memory?Lua表内存?
【发布时间】:2013-07-08 20:37:45
【问题描述】:

这可能是一个奇怪的问题,但是当我在填满 1400 万多个项目后出现内存错误时,我的好奇心占了上风。

Lua 表是否有某种设置的内存限制,或者它是否有点动态?我认为 Lua 本身通常会分配这么多内存,当内存用完时会抛出错误,但这只是一个疯狂的猜测。有谁肯定知道吗?谢谢。

【问题讨论】:

  • 我没有消息来源,但据我所知,Lua 将尽可能多地占用它需要和可以获得的内存。然而,数组表分配是 2 的幂,所以你实际上有一个包含 14m 项的数组表,它实际上是 2^24 长
  • 来源:lua.org/gems/sample.pdf第19页
  • 你收到了什么错误信息?

标签: memory lua allocation lua-table luajit


【解决方案1】:
t={}
for i=1,176000000 do t[#t+1]=i end

尝试使用 lua windows 64 位二进制文​​件 - 工作正常。

64 位 luajit 二进制文件崩溃。好像是luajit的一个bug。

【讨论】:

  • 在 4gb lua64 位停止正常增长表并显示消息 not enough memory
  • here 引用 lua 表受 4gb 内存限制。在sourcemax size of array part is 2^MAXBITS
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-11-17
  • 2013-10-11
  • 1970-01-01
  • 1970-01-01
  • 2011-10-12
  • 1970-01-01
  • 2016-01-26
相关资源
最近更新 更多