gpt4 book ai didi

linux - 如何在 *nix 中计算没有共享库的进程内存?

转载 作者:太空宇宙 更新时间:2023-11-04 04:26:37 26 4
gpt4 key购买 nike

我有一个简单的程序,例如在 C++ 中

#include <iostream>  
int main()
{
int a = 1000;
std::cout << a << std::endl;
return 0;
}

我正在尝试用 GNU 时间计算内存使用情况。但在“时间”输出中(用我的格式,没关系)内存中进程的最大大小是用 libc.so 计算的,它具有 printf 函数(调用 std::cout)并且等于 3.5 Mb。
有没有办法在不加载共享库的情况下计算进程内存?

UPD 由于多种原因,我无法在我想要测量的内存运行时执行此操作。我问是否有办法使用外部包装工具来完成此操作(例如 time )

最佳答案

pmap 实用程序,或者只是读取 pid 123 进程的文件 /proc/123/maps 和您自己的进程的 /proc/self/maps ,可以为您提供详细的内存映射。然后,您可以忽略与您不想测量的库相关的行。

尝试 cat/proc/self/maps 了解更多信息...(它显示该 cat 命令的 map )。

它是 Linux 特定的(可能不适用于 Solaris 或 FreeBSD)。

还有更标准的getrusage系统调用(不区分共享库使用的内存和其他内存使用)。

关于linux - 如何在 *nix 中计算没有共享库的进程内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8315999/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com