Управление памятью и очистка

Обзор

Сгенерированный Код С++ предоставляет сопоставимую сборку мусора через объектные деструкторы и MATLAB® Менеджер по внутренней памяти времени выполнения оптимизирует, чтобы избежать фрагментации кучи.

Если ограничения памяти все еще присутствуют в вашей системе, попытайтесь предварительно выделить массивы в MATLAB. Это сократит количество вызовов диспетчера памяти и степени к который фрагменты кучи.

Передача mxArrays к Разделяемым Библиотекам

Когда mxArray создается в приложении, которое использует MATLAB Runtime, это создается на пробеле управляемой памяти MATLAB Runtime.

Поэтому очень важно, чтобы вы никогда не создавали mxArrays (или вызов любая другая функция MATLAB) прежде, чем вызвать mclInitializeApplication.

Безопасно вызвать mxDestroyArray когда вам больше не нужен конкретный mxArray в вашем коде, даже когда вход был присвоен персистентной или глобальной переменной в MATLAB. MATLAB использует подсчет ссылок, чтобы гарантировать это когда mxDestroyArray называется, если другая ссылка на базовые данные все еще будет существовать, память не будет освобождена. Даже если базовая память не освобождена, mxArray переданный mxDestroyArray больше не будет допустимо.

Для получения дополнительной информации о mclInitializeApplication и mclTerminateApplication, смотрите Вызов C Разделяемая Библиотека.

Для получения дополнительной информации о mxArray, см. Матричный API C.