我的 C mex 编译文件内存不足(更具体地说,我mxMalloc
有时调用 return NULL
)。通过快速计算,我估计我的文件mxMalloc
总共需要大约 500 MB 的内存(可能高达 1 GB),我在 64 位 Linux 机器上运行文件,16 GB 内存几乎完全运行 Matlab。然而,经常mxMalloc
返回。NULL
我想这可能有几个原因(内存碎片等),但无论如何,对于 16 GB 内存的机器来说,500 MB 的要求似乎并不高。
我假设我的调用是mxMalloc
从 Matlab 的堆中请求内存,但不是 100% 确定它(mxMalloc
请求毕竟由 Matlab 处理,而不是由操作系统直接处理)。那么有没有办法增加我的 mex 文件的“堆”大小?
谢谢