Matlab で次のコードを実行すると、システム メモリの 90% に達するまで Matlab の物理メモリ使用量が増加し、プログラムがクラッシュします。このコードは、さらに多くの反復を行う大規模な最適化スキームの一部ですが、ここでは単純化されています。
import org.parent.modeling.*
for i = 1:100
rTool = Tool('C:/etc');
model = rTool.getModel();
model.initSystem();
rTool.setModel(model);
rTool.run();
end
rTool
およびモデルは Java オブジェクトとしてワークスペースに格納されます。ステップを下から上に選択的に削除することで、次のことがわかりましたrTool.run()
。ステップは、反復ごとにメモリの増加を引き起こしています。さまざまなメモリクリア技術を使用してみましたが、成功しませんでした
clear classes, clear java, clear rTool model, clear all
memory
コマンドを実行して断片化を確認しましたが、重要ではありません。以下は、API ドキュメント ( https://simtk.org/api_docs/opensim/api_docs/classOpenSim_1_1RRATool.html )に対応する実際のコードです。
for i = 1:1:4
import org.opensim.modeling.*
rraTool = RRATool('C:\...filename.xml');
model = rraTool.getModel();
model.initSystem();
rraTool.setModel(model);
rraTool.run();
end
物理メモリの増加を減らすための提案はありますか?
マトラブ: 2013