1

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

4

1 に答える 1