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

标签 linux memory

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

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

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

我怎样才能得到它?

谢谢。

最佳答案

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

但并非所有平台都支持这一点,内存使用选项将返回 0 值。

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

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

关于linux - 在linux中获取短运行程序的峰值内存(堆和堆栈),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42804316/

相关文章:

java - 具有数千万用户的现实社交网络模型。我应该使用哪些技术?

linux - 文件被复制并重命名,但我也收到错误

c++ - 如何在 Linux 上获取磁盘上的文件大小?

linux - crontab 没有删除 linux 中的文件

c - 用于在网格上查找路径的最有效内存算法

c - C 中的 Getter 和 Setter

windows - 为什么在 Windows Vista x64 上调用 GlobalMemoryStatus 时可用物理内存 (dwAvailPhys) > 可用虚拟内存 (dwAvailVirtual)

Python 检查 If 语句中的序列字符串

linux - 通过 ssh 运行命令时向远程机器提问

java - 最终关键字的优化