【发布时间】:2015-08-05 00:55:29
【问题描述】:
我目前正在尝试编写一个程序来处理一个相当大的文件(~16GB),然后对其进行分析。理想情况下,我会在 C/C++ 中进行数据处理(我已经编写了一个高效的实现),然后在 Matlab 中进行分析,以利用其高效的算法和易用性。
我的自然倾向是在程序开始时使用 MEX 调用用 C 编写的例程,然后在 Matlab 中继续。我想知道(以及出于某种原因我似乎无法在网上找到的)是如果我要使用这种方法来共享内存的方式:
假设我要在 C 中创建一个大型堆分配数组以传递给 Matlab。在我的 Matlab 函数可以处理它之前,是否需要将该数组复制到内存中,或者 Matlab 是否能够直接访问原始数组而无需额外复制?我假设并希望这将以第二种方式起作用,但我宁愿在花费时间和精力之前先确定一下。
【问题讨论】: