【发布时间】:2013-01-14 19:11:58
【问题描述】:
我正在测试我们在 Matlab 中开发的一个独立应用程序,当时我注意到它的内存使用量(根据 Windows 任务管理器)达到了 16gb 以上的数倍峰值。我决定在编译版本后面的脚本上使用profile -memory on 运行 Matlab 的分析器,以使用完全相同的输入来查看内存峰值出现的位置。然而,它发现的最高峰内存为 2400860.00 Kb,或者大约是该函数的 1/4,该函数基本上充当程序的main()。
因此,我想知道人们是否注意到在运行已编译的 Matlab 程序和在 Matlab 中运行原始脚本之间存在巨大的内存使用差异。我注意到在 Matlab 中运行需要更长的时间,但我认为这是由于分析器跟踪所有内存分配和释放,而不是读取和写入磁盘上的交换空间。
【问题讨论】:
-
只是为了确认一下:两次运行是否使用同一台计算机?我以前没有遇到过这种情况,但也许在编译过程中进行了优化,让几件事同时发生(因此需要更多内存)。也可能是由于控制台模式下对matlab施加的内存限制造成的。最后一个问题:当你在运行另一个进程之前已经占用了 5~10 g ram 时,你会达到什么峰值?
-
什么版本的matlab?
-
您以两种不同的方式测量内存。当您运行
profile -memory on时,任务管理器会报告哪些内存使用情况?
标签: matlab memory matlab-deployment matlab-compiler mcc