LuaJit aumentar pila tamaño / heap
Pregunta
Me sale un error de falta de memoria en LuaJit. ¿Cómo puedo aumentar el tamaño de pila o montón?
Gracias
Solución
No he utilizado yo LuaJIT, que no sea con ejemplos de juguete. Pero puesto que nadie más ha proporcionado ninguna respuesta todavía ...
De rozando la documentación , LuaJIT depende de las extensiones Coco a la biblioteca corrutina estándar. Uno de los cambios introducidos por Coco es que las funciones que crean un nuevo corrutina ahora toman un argumento opcional que especifica el tamaño de la pila.
Citando la documentación Coco:
coro = coroutine.create(f [, cstacksize])
func = coroutine.wrap(f [, cstacksize])
El argumento opcional
cstacksize
especifica el tamaño de la pila de C a asignar a la co-rutina:
- A tamaño de la pila por defecto se utiliza si
cstacksize
no se da o esnil
o cero.- No pila C se asigna si
cstacksize
es-1
.- Cualquier otro valor se redondea hasta el tamaño mínimo (es decir, uso
1
para obtener el tamaño mínimo).
Existe también la nueva coroutine.cstacksize([newdefault])
función que establece el tamaño de pila predeterminado C, así como algunos cambios correspondientes en la API C.
Además, hay numerosas opciones de configuración de tiempo de compilación en la versión LuaJIT de luaconf.h. Puede haber algo allí que define el valor predeterminado. En Windows, también hay un escenario de pila básica del ejecutable, establecido por link.exe de MSVC a través de la declaración STACKSIZE en el archivo .def de la aplicación en tiempo de enlace.