Я использую CPLEX через Java API (который опирается на JNI). У меня есть одно запущенное приложение, которое последовательно решает миллионы задач. Сама проблема проста и решается за миллисекунды.
У меня есть этот параметр, чтобы избежать чрезмерного использования памяти
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, которые после миллиона запусков исчерпывают мою оперативную память.
Что мне делать, создать один объект cplex и принудительно удалить память созданной модели? Достаточно ли cplex.clearModel();
?