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