LuaJit增加堆栈/堆大小

时间:2009-08-30 18:40:51

标签: memory lua stack heap luajit

我在LuaJit中不断出现内存不足错误。如何增加堆栈或堆大小?

由于

1 个答案:

答案 0 :(得分:3)

我自己没有使用过LuaJIT,除了玩具示例。但是,由于没有人提供任何答案......

从浏览documentation开始,LuaJIT依赖于标准协同程序库的Coco扩展。 Coco引入的一个变化是,创建新协程的函数现在采用一个指定堆栈大小的可选参数。

引用Coco文档:

  

coro = coroutine.create(f [, cstacksize])
  func = coroutine.wrap(f [, cstacksize])

     

可选参数cstacksize   指定C堆栈的大小   为协程分配:

     
      
  • 如果未给出cstacksizenilcstacksize,则使用默认堆栈大小   零。
  •   
  • 如果-11,则不会分配C堆栈。
  •   
  • 将任何其他值四舍五入为最小尺寸(即使用coroutine.cstacksize([newdefault])来获取   最小尺寸)。
  •   

还有新函数{{1}}设置默认的C堆栈大小,以及对C API的一些相应更改。

此外,LuaconJ.h的LuaJIT版本中有许多编译时配置选项。可能存在设置默认值的内容。在Windows上,还有一个可执行文件基本堆栈的链接时设置,由MSVC的LINK.EXE通过应用程序的.DEF文件中的STACKSIZE语句设置。