Memory LuaJit增加堆栈/堆大小
我在LuaJit中不断遇到内存不足的错误。如何增加堆栈或堆的大小Memory LuaJit增加堆栈/堆大小,memory,lua,stack,heap,luajit,Memory,Lua,Stack,Heap,Luajit,我在LuaJit中不断遇到内存不足的错误。如何增加堆栈或堆的大小 谢谢我自己没有用过LuaJIT,除了玩具的例子。但既然还没有其他人提供任何答案 LuaJIT从浏览数据库开始,依赖于标准协同程序库的Coco扩展。Coco引入的一个变化是,创建新协同路由的函数现在采用了一个可选参数来指定堆栈大小 引用Coco文件: coro=coroutine.create(f[,cstacksize]) func=coroutine.wrap(f[,cstacksize]) 可选参数cstacksize 指定要
谢谢我自己没有用过LuaJIT,除了玩具的例子。但既然还没有其他人提供任何答案 LuaJIT从浏览数据库开始,依赖于标准协同程序库的Coco扩展。Coco引入的一个变化是,创建新协同路由的函数现在采用了一个可选参数来指定堆栈大小 引用Coco文件:
coro=coroutine.create(f[,cstacksize])
func=coroutine.wrap(f[,cstacksize])
可选参数cstacksize
指定要使用的C堆栈的大小
为协同程序分配:
- 如果未给出
或cstacksize
或 零nil
- 如果
为cstacksize
,则不分配C堆栈-1
- 任何其他值向上舍入到最小值(即使用
获得 最小尺寸)1
coroutine.cstacksize([newdefault])
,用于设置默认的C堆栈大小,以及对C API的一些相应更改
此外,在LuaJIT版本的luaconf.h中有许多编译时配置选项。其中可能有设置默认值的内容。在Windows上,可执行文件的基本堆栈还有一个链接时间设置,由MSVC的link.EXE通过应用程序的.DEF文件中的STACKSIZE语句设置。谢谢。我将尝试增加c编译器堆栈的大小,并减少协同程序堆栈的大小。没有骰子。我尝试将-Wl,--stacksize=flags注入到ldargs中,但它似乎忽略了它。我不确定减小协程堆栈大小是否会有帮助。我想增加它。。。我没有看到任何关于什么控制初始线程堆栈大小的语句,如果它不是链接时间堆栈大小的话。但是如果你有协同程序,并且其中一个正在报告堆栈外,那么你需要增加可用的堆栈大小,如果不是全部的话,至少要增加该协同程序的可用堆栈大小。我认为每个线程都有一个固定的堆栈存储,每个协同程序的模拟堆栈占用了其中的一大块。因此,减少协同路由的模拟堆栈大小应该允许创建更多的协同路由。