在linux中获取短期运行程序的峰值内存(堆和堆栈)

在linux中获取短期运行程序的峰值内存(堆和堆栈),linux,memory,Linux,Memory,我制作了一个运行大约几毫秒的C程序 我想知道运行这个程序需要多少内存(堆栈和堆) 我使用了Valgrind(massif),但它只定期测量内存 我怎样才能得到它 谢谢。 < P>如果你的代码是C或C++,你可以使用GeTraseAGE(),它会返回关于进程的内存和时间使用的各种统计信息。 但并非所有平台都支持此功能,并且将为内存使用选项返回0值 相反,您可以查看在/proc/[pid]/statm中创建的虚拟文件(其中[pid]由您的进程id替换。您可以从getpid()获取此文件) 此文件看起

我制作了一个运行大约几毫秒的C程序

我想知道运行这个程序需要多少内存(堆栈和堆)

我使用了Valgrind(massif),但它只定期测量内存

我怎样才能得到它


谢谢。

< P>如果你的代码是C或C++,你可以使用GeTraseAGE(),它会返回关于进程的内存和时间使用的各种统计信息。 但并非所有平台都支持此功能,并且将为内存使用选项返回0值

相反,您可以查看在/proc/[pid]/statm中创建的虚拟文件(其中[pid]由您的进程id替换。您可以从getpid()获取此文件)


此文件看起来像一个包含7个整数的文本文件。您可能对该文件中的第一个(所有内存使用)和第六个(数据内存使用)数字最感兴趣

我认为结果中的“最大驻留集大小”不能提供确切的“堆和堆栈”大小。我错了吗?请在回答中提供更多细节。请解释此命令将如何提供所需信息。
$ /usr/bin/time -v /path/to/your/program