我一直在LuaJit中得到一个内存不足的错误。如何增加堆栈或堆的大小?
谢谢
发布于 2009-08-31 21:06:07
除了玩具示例之外,我自己还没有使用过LuaJIT。但由于还没有其他人提供任何答案...
从浏览documentation开始,LuaJIT依赖于对标准协程程序库的Coco扩展。Coco引入的变化之一是,创建新协程的函数现在接受指定堆栈大小的可选参数。
引用Coco文档:
coro = coroutine.create(f [, cstacksize])
func = coroutine.wrap(f [, cstacksize])
可选参数cstacksize指定要分配给协程的C堆栈的大小:
cstacksize或者为nil或零,则使用默认堆栈大小。如果cstacksize,则不分配C堆栈。其他值向上舍入为最小大小(即使用1获取最小大小)。还有设置默认C堆栈大小的新函数coroutine.cstacksize([newdefault]),以及对C API的一些相应更改。
此外,在luaconf.h的LuaJIT版本中有许多编译时配置选项。这里面可能有设置默认值的东西。在Windows上,还有可执行文件的基本堆栈的链接时间设置,由MSVC的LINK.EXE通过应用程序的.DEF文件中的STACKSIZE语句设置。
https://stackoverflow.com/questions/1354572
复制相似问题