用于测量内存使用情况的GNU"time"命令的问题

6 linux memory-management

我一直在尝试使用time命令/ usr/bin/time来测量linux系统上程序的峰值内存消耗.独立于我实验的可执行文件,我得到了关于运行时间的正确答案,但内存使用数字始终为0.

时间的典型输出是这样的:

8.68user 0.04system 0:08.73elapsed 99%CPU(0avgtext + 0avgdata 0maxresident)k 0inputs + 16outputs(0major + 20366minor)pagefaults 0swaps

我不理解的零是:

0avgtext + 0avgdata 0maxresident

我已经google了,我认为GNU时间实际上无法计算其手册页中引用的那些内存使用数据.我对么?我可以使用什么替代命令来达到同样的效果?(无需锻炼valgrind)

Rut*_*ing 5

据我所知,在Linux中没有实现峰值内存使用,所以时间不会报告.大多数人使用次要页面错误的数量(1 == 4Kb块)作为所用内存量的指示.

例如,见这里 Linus Torvalds的是如何使用它来寻找git的性能.

我知道测量它的唯一方法是使用'ulimit'并使用二进制搜索来找到它需要的最少内存量:)