数日前java.lang.OutOfMemoryError: Java heap space
、コードを実行したり、パスに何かを追加したりする前に、MATLAB の起動時に例外が発生し始めました。MATLAB がロードする既定のディレクトリにも、ファイルはありません。
Windows 7 64 ビットで MATLAB R2012a を実行しています。
何が原因でしょうか?
数日前java.lang.OutOfMemoryError: Java heap space
、コードを実行したり、パスに何かを追加したりする前に、MATLAB の起動時に例外が発生し始めました。MATLAB がロードする既定のディレクトリにも、ファイルはありません。
Windows 7 64 ビットで MATLAB R2012a を実行しています。
何が原因でしょうか?
provideを使用してアプリケーションを起動しますjava -Xmx -Xms option
-
-Xmx <number> : max memory allocation to app
-Xms <number> : Min memory at startup
-Xmx
最近のバージョンの Matlab でパラメーターを設定するには、 [設定] (ツールバー/リボン) に移動してから、
MATLAB > General > Java Heap Memory
そこにスライダーがあります。これを有効にするには、Matlab を再起動する必要があります。
ただし、警告があります。
注: Java ヒープ サイズを大きくすると、データを配列に格納するために使用できるメモリの量が減少します。
これは、Matlab が配列を Java ヒープ空間に格納しないことを意味していると思います。しかし、上限を設定するだけであれば、これは問題になるでしょうか? 私はそうは思わない。より具体的には、上記のスライダーを 36 GB に設定するとどうなるかを見ると、Matlab が起動し、すぐにその仮想メモリ ( で表示top
) が 39.9 GB になります。ただし、物理メモリの使用量は約 300 MB にすぎません。したがって、実際にそのヒープ領域に何かを配置しない限り、配列などで使用できる物理メモリが少なくなることはありません。したがって、この警告は無視できるようです。
ターミナルを介して Matlab に非グラフィカル アクセスしかない場合、上記のコマンドの効果は次の行を に追加すること~/.matlab/R2016a/matlab.prf
であったため、代わりに手動でそれを行うことができます。
JavaMemHeapMax=I36532
この行は、スライダーを使用して設定を 36,532 MB に設定し、Matlab を終了した後に表示されました。matlab.prf
ファイルが見つからない場合は、こちらを確認してください。
これを参照してくださいMATLAB 6.0 (R12) 以降のバージョンで Java VM のヒープ領域を増やすにはどうすればよいですか?
EDIT
は、ヒープの初期-Xms
サイズを設定します。これを変更しても、エラーには影響しません。使用するオプションは、ヒープの最大サイズを設定するものです。詳しくはこちらをご覧ください。java.lang.OutOfMemory
-Xmx