ack*_*use 8 memory matlab mcc matlab-deployment matlab-compiler
我正在测试一个我们在Matlab中开发的独立应用程序,当时我注意到它的内存使用量,根据Windows任务管理器,在16gb以上达到峰值几倍.我决定profile -memory on在编译版本后面的脚本上运行Matlab的分析器,以查看内存峰值发生的位置,使用完全相同的输入.然而,它发现的最高峰值记忆是2400860.00 Kb,或大约1/4,对于基本上充当程序的功能main().
因此,我想知道人们是否注意到在运行已编译的Matlab程序和在Matlab中运行原始脚本之间存在巨大的内存使用差异.我注意到它在Matlab中运行了很长时间,但我认为这是由于分析器跟踪所有内存分配和解除分配,而不是读取和写入磁盘上的交换空间.
快速回答这个问题.是的,MATLAB编译的应用程序运行的开销比MATLAB脚本更多.
这是因为MATLAB部署的应用程序打开了一个MATLAB版本,它存储在称为MCR的内存中.MCR的运行开销比MATLAB更多.
我发现在这种情况下有用的一件事是重新编译,看看是否有帮助.如果没有,您可以尝试通过在段中运行计算来降低内存使用量.
这可能有助于更好地使用内存:http://www.mathworks.com/help/matlab/matlab_prog/strategies-for-efficient-use-of-memory.html
资源:
如果您有疑问,请评论.
| 归档时间: |
|
| 查看次数: |
2215 次 |
| 最近记录: |