我制作了一个运行大约几毫秒的 C 程序。
我想知道运行该程序需要多少(堆栈和堆)内存。
我使用了 Valgrind (massif),但它只定期测量内存。
我怎样才能得到它?
谢谢。
最佳答案
如果您的代码是用 C 或 C++ 编写的,您可以使用 getrusage() 返回有关进程的内存和时间使用情况的各种统计信息。
但并非所有平台都支持这一点,内存使用选项将返回 0 值。
相反,您可以查看在/proc/[pid]/statm 中创建的虚拟文件(其中 [pid] 替换为您的进程 ID。您可以从 getpid() 获取它)。
这个文件看起来像一个包含 7 个整数的文本文件。您可能对该文件中的第一个(所有内存使用)和第六个(数据内存使用)数字最感兴趣
关于linux - 在linux中获取短运行程序的峰值内存(堆和堆栈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42804316/