Сгенерированный Код С++ предоставляет сопоставимую сборку мусора через объектные деструкторы, и менеджер по внутренней памяти MATLAB® Runtime's оптимизирует, чтобы избежать фрагментации кучи.
Если ограничения памяти все еще присутствуют в вашей системе, попытайтесь предварительно выделить массивы в MATLAB. Это сократит количество вызовов диспетчера памяти и степени к который фрагменты кучи.
Когда mxArray
создается в приложении, которое использует MATLAB Runtime, он создается на пробеле управляемой памяти MATLAB Runtime.
Поэтому очень важно, чтобы вы никогда не создавали mxArray
s (или вызовите любую другую функцию MATLAB) прежде, чем вызвать mclInitializeApplication
.
Безопасно вызвать mxDestroyArray
, когда вам больше не нужен конкретный mxArray
в вашем коде, даже когда вход был присвоен персистентной или глобальной переменной в MATLAB. MATLAB использует подсчет ссылок, чтобы гарантировать, что, когда mxDestroyArray
называется, если другая ссылка на базовые данные все еще существует, память не будет освобождена. Даже если базовая память не будет освобождена, mxArray
, переданный mxDestroyArray
, больше не будет допустим.
Для получения дополнительной информации о mclInitializeApplication
и mclTerminateApplication
, смотрите Вызов C Разделяемая Библиотека.
Для получения дополнительной информации о mxArray
, см. Матричный API C (MATLAB).