Сгенерированный Код С++ предоставляет сопоставимую сборку мусора через объектные деструкторы, и менеджер по внутренней памяти 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.