主要内容

内存管理和清理

概述

生成的c++代码通过对象析构函数和MATLAB®运行时微软的内部内存管理器会优化以避免堆碎片。

如果您的系统中仍然存在内存限制,请尝试在MATLAB中预先分配数组。这将减少对内存管理器的调用数量,以及堆碎片的程度。

将mxArrays传递给共享库

当一个mxArray在使用MATLAB运行时的管理内存空间中创建MATLAB运行时

因此,永远不要去创造是非常重要的mxArrays(或调用任何其他MATLAB函数)之前调用mclInitializeApplication

打电话是安全的mxDestroyArray当你不再需要一个特殊的mxArray在你的代码中,即使输入已经被分配到一个持久或全局变量在MATLAB中。MATLAB使用参考计数来保证mxDestroyArray调用时,如果对底层数据的另一个引用仍然存在,则不会释放内存。即使底层内存未被释放,mxArray传递给mxDestroyArray将不再有效。

有关更多信息mclInitializeApplicationmclTerminateApplication,请参阅调用C共享库

有关更多信息mxArray,请参阅矩阵C API