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