内存管理和清理
概述
生成的c++代码通过对象析构函数和MATLAB®运行时微软的内部内存管理器会优化以避免堆碎片。
如果您的系统中仍然存在内存限制,请尝试在MATLAB中预先分配数组。这将减少对内存管理器的调用数量,以及堆碎片的程度。
将mxArrays传递给共享库
当一个mxArray
在使用MATLAB运行时的管理内存空间中创建MATLAB运行时.
因此,永远不要去创造是非常重要的mxArray
s(或调用任何其他MATLAB函数)之前调用mclInitializeApplication
.
打电话是安全的mxDestroyArray
当你不再需要一个特殊的mxArray
在你的代码中,即使输入已经被分配到一个持久或全局变量在MATLAB中。MATLAB使用参考计数来保证mxDestroyArray
调用时,如果对底层数据的另一个引用仍然存在,则不会释放内存。即使底层内存未被释放,mxArray
传递给mxDestroyArray
将不再有效。
有关更多信息mclInitializeApplication
和mclTerminateApplication
,请参阅调用C共享库.
有关更多信息mxArray
,请参阅矩阵C API.