LuaJit でスタック/ヒープ サイズを増やす
質問
LuaJit でメモリ不足エラーが発生し続けます。スタックまたはヒープ サイズを増やすにはどうすればよいですか?
ありがとう
解決
私自身、おもちゃの例を除いて LuaJIT を使用したことはありません。しかし、まだ誰も答えを出していないので...
スキミングから ドキュメンテーション, LuaJIT は、標準コルーチン ライブラリの Coco 拡張機能に依存しています。Coco によって導入された変更の 1 つは、新しいコルーチンを作成する関数がスタック サイズを指定するオプションの引数を取るようになったことです。
Coco のドキュメントを引用します。
coro = coroutine.create(f [, cstacksize])
func = coroutine.wrap(f [, cstacksize])
オプションの引数
cstacksize
C スタックのサイズを コルーチンに割り当てます。
- 次の場合、デフォルトのスタック サイズが使用されます。
cstacksize
与えられていない、または与えられているnil
又は ゼロ。- 次の場合、C スタックは割り当てられません。
cstacksize
は-1
.- 他の値は最小サイズに切り上げられます (つまり、使用
1
取得するには 最小サイズ)。
新機能もございます coroutine.cstacksize([newdefault])
これにより、デフォルトの C スタック サイズが設定され、それに対応する C API への変更もいくつか設定されます。
さらに、luaconf.h の LuaJIT バージョンには多数のコンパイル時構成オプションがあります。デフォルトを設定するものがそこにある可能性があります。Windows では、実行可能ファイルの基本スタックに対するリンク時の設定もあり、これはアプリケーションの .DEF ファイル内の STACKSIZE ステートメントを介して MSVC の LINK.EXE によって設定されます。
所属していません StackOverflow