私はJavaで関数を書いていますが、これは何度も(〜10000の範囲で)再帰的に呼び出す必要があります。あるレベルの再帰 (~3250 atm) に達した後、Java スレッドは保持され、再起動する必要があります。これは、jvm が開始される RAM の量 (現在は 2GB) の影響を受けません。
jvm が処理できるネストの最大レベルに影響を与えるにはどうすればよいですか?
この順序で、次を試してください。
アルゴリズムを変更します (代わりにスタックとループを使用できるはずです)。
末尾再帰の使用 (つまり、言語を変更してください。scalaは末尾再帰をサポートしています)
パラメータを JVM に渡し-Xss1m
てスタック サイズを増やします。1m
1 MiB を意味します。