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

Обзор

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

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

Передача mxArrays в общие библиотеки

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

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

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

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

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