我正在通过Java API(依赖于JNI)使用CPLEX。我有一个应用程序运行并按顺序解决了数百万个问题。问题本身很简单,它可以在几毫秒内解决。
我有这个设置以避免使用过多的内存
cplex = new IloCplex();
//...model definition
cplex.setParam(IloCplex.IntParam.WorkMem, 512);
cplex.setParam(IloCplex.DoubleParam.TreLim, 1024);
cplex.setParam(IloCplex.IntParam.NodeFileInd, 3);
但请相信我,它太小了,我永远不会超过那个记忆。运行数小时后出现问题。应用程序退出127错误。我很确定CPLEX库保留在cplex的内存实例中,经过数百万次运行耗尽了我的RAM。
我该怎么做,创建一个cplex对象并强制删除已创建模型的内存? cplex.clearModel();
足够吗?
答案 0 :(得分:0)
我必须调用cplex.end()
来释放每次解决配方后创建的所有变量。