在 Matlab 中运行以下代码时,Matlab 的物理内存使用量会增加,直到达到我系统内存的 90%,并导致程序崩溃。这段代码是一个更大的优化方案的一部分,将有更多的迭代,但这里已经简化了。
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()
; step 导致每次迭代期间内存增加。我尝试过使用各种内存清除技术但没有成功
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
有什么减少物理内存增加的建议吗?
MATLAB:2013