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

时间:2017-03-15 08:17:25

标签: linux memory

我做了一个运行大约几毫秒的C程序。

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

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

我怎样才能得到它?

感谢。

2 个答案:

答案 0 :(得分:0)

如果您的代码是C或C ++,您可以使用getrusage(),它会返回有关内存和进程时间使用情况的各种统计信息。

并非所有平台都支持此功能,并且将为内存使用选项返回0值。

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

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

答案 1 :(得分:0)

$ /usr/bin/time -v /path/to/your/program