6

私はMathematicaとそのJ/LinkJavaインターフェースを使って計算集約型のベンチマークを行っています。

約320MBのメモリフットプリントに達すると、ベンチマークは停止します。これが限界のようであり、ガベージコレクターはますます多くの時間を必要とし、最終的には失敗するためです。

Mathematica関数ReinstallJavaは引数コマンドラインを取ります。やってみた

ReinstallJava[CommandLine -> "java -Xmx2000m ..."]

しかしMathematicaは-Xmxオプションを完全に無視しているようです。

Javaプログラムの-Xmxメモリオプションを設定するにはどうすればよいですか?320 MBの制限はどこから来ていますか?どんな助けでも大歓迎です。

4

2 に答える 2

9

ReinstallJavaオプションを取りJVMArgumentsます。次のようにヒープサイズを渡すために使用できます。

In[1]:= Needs["JLink`"]

In[2]:= Options[ReinstallJava]

Out[2]= {ClassPath -> Automatic, CommandLine -> Automatic, 
 JVMArguments -> None, ForceLaunch -> False, Default -> Automatic, 
 CreateExtraLinks -> Automatic, "Asynchronous" -> Automatic}

In[3]:= ?JVMArguments

JVMArguments is an option to InstallJava that
allows you to specify additional command-line
arguments passed to the Java virtual machine at
startup. The string you specify is added to the
command line used to launch Java. You can use this
option to specify properties with the standard -D
syntax, such as "-Dsome.property=true". This
option is not supported on Mac OSX. >>

In[4]:= LoadJavaClass["java.lang.Runtime"];

In[5]:= java`lang`Runtime`getRuntime[]@maxMemory[]

Out[5]= 238616576

In[6]:= ReinstallJava[JVMArguments -> "-Xmx64g"];

In[7]:= LoadJavaClass["java.lang.Runtime"];

In[8]:= java`lang`Runtime`getRuntime[]@maxMemory[]

Out[8]= 61084008448

(私はかつて のコードを読んで絶望的にこれを理解しましたC:\Program Files\Wolfram Research\Mathematica\7.0\SystemFiles\Links\JLink\Kernel. にリストされていることに気づいた後、Options[ReinstallJava]それは一種の明白なように思えました…)

于 2009-06-18T00:56:40.520 に答える
3

Mac OS X ユーザーの場合は、

ReinstallJava[JVMArguments -> "-Xmx64g"];

ReinstallJava[CommandLine -> "java", JVMArguments -> "-Xmx64g"];
于 2012-07-11T15:13:27.390 に答える