質問

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 によって設定されます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top