MATLAB JA Builder でコンパイルされたコードを Java で呼び出すときに奇妙な問題が発生します。詳細は次のとおりです。
- コードは
load()
大きな .mat ファイルに対して実行します - mat ファイルが (.mat をインポートすることによって) MATLAB で開かれた場合、すべて正常に動作し、最大 900 MB のメモリを消費します。
- コードが Java アプリ (JA Builder によってビルドされた関数をインポートするだけ) から呼び出された場合、MATLAB スクリプトからメモリ不足になります。
- Xmx を非常に高く設定してみましたが、まったく効果がないようです
- さらに奇妙なのは、Java プログラムが Eclipse デバッガーを介して実行される場合、最大 900MB の RAM を使用でき、
load()
関数が成功することです。
何が起こっているのか知っている人はいますか?
スタック トレースの一部を添付しました。
??? ==> load の使用エラー メモリ不足です。オプションに HELP MEMORY と入力します。 ... Matlab M コード スタック トレース ... ファイル C:\Users\HiME\AppData\Local\MathWorks\mcr_cache_v78\fileProcesso_39586D5669D9A968B2CD5231A43620E4\fileProcesso\getHeaders.m、名前 getHeaders、8 行目。 com.mathworks.toolbox.javabuilder.MWException: ==> ロードの使用中にエラーが発生しました メモリ不足です。options.Error in =>getHeaders.m at 8 に HELP MEMORY と入力します。