3

STM を使用して並列銀行振込を実行する小さなプログラムがあるため、2 コアと 1 コアの異なるマシンでテストしています。2 コア マシンではすべてが機能しますが、1 コア マシンでは、100 万の並列トランザクションを実行すると Java Out of Memory エラーがスローされます。

エラーは次の "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space です

また、同じプログラムのJava同期バージョンがありますが、遅くても100万回のトランザクションに達する可能性があります。

Clojure アプリケーションを 1 コア マシンで動作させるにはどうすればよいですか? 残念ながら、ガベージ コレクターはそれほど多くの Ref を処理できません...どう思いますか?

助けてくれてどうもありがとう!

更新: それは今動作します, 私はjava -Xmx1000m -jar myprog.jar完全に動作しました!

JVM のヒープ サイズを増やすことができるとは知りませんでした。それがまさに私の問題でした。「sw1nn」さん、すばらしいコメントをありがとうございます ;)

4

1 に答える 1

2

以下のように jvm-opts を leiningen project.clj に追加することもできます。

:jvm-opts ["-Xmx1500m"]

leiningen でプログラムを実行するときに指定します (テストなど)。

于 2013-03-13T00:27:07.433 に答える