我正在通过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();
足够吗?
1 回答
我不得不调用
cplex.end()
来释放每次解决配方后创建的所有变量 .