LuaJit aumentare pila / dimensione heap
Domanda
Continuo a ricevere un errore di memoria insufficiente in LuaJit. Come faccio ad aumentare la dimensione dello stack o heap?
Grazie
Soluzione
Non ho usato io stesso LuaJIT, se non con esempi di giocattoli. Ma dal momento che nessun altro ha fornito alcuna risposta ancora ...
Da sfiorando la documentazione , LuaJIT dipende dalle estensioni Coco alla libreria coroutine standard. Una delle modifiche introdotte da Coco è che le funzioni che creano una nuova coroutine ora prendere un argomento facoltativo che specifica la dimensione dello stack.
Citando la documentazione Coco:
coro = coroutine.create(f [, cstacksize])
func = coroutine.wrap(f [, cstacksize])
Il
cstacksize
argomento opzionale specifica la dimensione dello stack C assegnare per il coroutine:
- Una dimensione di stack di default viene utilizzato se
cstacksize
non è dato o ènil
o zero.- Nessun pila C è assegnato se
cstacksize
è-1
.- Qualsiasi altro valore viene arrotondato alla dimensione minima (cioè uso
1
arrivare la dimensione minima).
C'è anche la nuova funzione coroutine.cstacksize([newdefault])
che imposta la dimensione dello stack predefinita C, nonché alcune modifiche corrispondenti alle API C.
Inoltre, ci sono numerose opzioni di configurazione in fase di compilazione nella versione LuaJIT di luaconf.h. Ci può essere qualcosa in là che imposta il default. Su Windows, v'è anche un ambiente per lo stack di base del file eseguibile, fissato dal LINK.EXE di MSVC tramite la dichiarazione STACKSIZE nel file .DEF dell'applicazione di collegamento in tempo.