在最近的一个项目中,我必须测量不同算法的内存需求以进行比较。但是,我无法控制内存分配本身(算法是用 matlab 编写的),但似乎只有在需要时才分配内存,并在系统不再需要时提前释放内存。因此,测量内存需求的想法如下:
- 获取正在运行的matlab进程的PID
- 在算法开始之前读取
/proc/<PID>/status
并解析并记录条目VmSize
- 在每个算法的内部循环中执行与 2) 相同的操作,并将 's 之间的差异记录
VmSize
为算法的内存消耗
现在我的问题是:这是对内存消耗的可靠估计吗?还是我应该使用不同的字段(有很多Vm*
字段可供选择,但我发现VmSize
与我预期的最接近)?请注意,我不需要“精确到字节”的测量,而只需要一些“粗略”的估计。