3

LuaJitでメモリ不足エラーが発生し続けます。スタックまたはヒープのサイズを増やすにはどうすればよいですか?

ありがとう

4

1 に答える 1

3

おもちゃの例を除いて、私自身はLuaJITを使用していません。しかし、他の誰もまだ答えを提供していないので...

ドキュメントのスキミングから、LuaJITは標準のコルーチンライブラリへのCoco拡張機能に依存しています。Cocoによって導入された変更の1つは、新しいコルーチンを作成する関数が、スタックサイズを指定するオプションの引数を取るようになったことです。

Cocoドキュメントの引用:

coro = coroutine.create(f [, cstacksize])
func = coroutine.wrap(f [, cstacksize])

オプションの引数cstacksize は、コルーチンに割り当てるCスタックのサイズを指定します。

  • cstacksizeが指定されていないか、nilまたはゼロの場合、デフォルトのスタックサイズが使用されます。
  • cstacksizeの場合、Cスタックは割り当てられません-1
  • その他の値は最小サイズに切り上げられます(つまり1、最小サイズを取得するために使用します)。

coroutine.cstacksize([newdefault])デフォルトのCスタックサイズを設定する新しい関数と、それに対応するCAPIへの変更もあります。

さらに、luaconf.hのLuaJITバージョンには多数のコンパイル時構成オプションがあります。デフォルトを設定する何かがそこにあるかもしれません。Windowsでは、実行可能ファイルの基本スタックのリンク時間設定もあります。これは、アプリケーションの.DEFファイルのSTACKSIZEステートメントを介してMSVCのLINK.EXEによって設定されます。

于 2009-08-31T21:06:07.457 に答える