Ubuntu 中的 memusage 命令在哪里?

Ubuntu 中的 memusage 命令在哪里?

在我的 Ubuntu LTS 系统上,我有一个手册页用于记忆:

$ man memusage
MEMUSAGE(1)                                      Linux user manual                                      MEMUSAGE(1)

NAME
       memusage - profile memory usage of a program
...

然而,当我尝试运行 memusage 时,却找不到它。

在我的系统上搜索出现的次数得到如下结果:

$ dpkg -S memusage
libc6-i386: /lib32/libmemusage.so
manpages: /usr/share/man/man1/memusage.1.gz
libc6-dbg:amd64: /usr/lib/debug/lib/x86_64-linux-gnu/libmemusage.so
libc6:i386: /lib/i386-linux-gnu/libmemusage.so
libreoffice-script-provider-bsh: /usr/lib/libreoffice/share/Scripts/beanshell/MemoryUsage/memusage.bsh
libc6:amd64: /lib/x86_64-linux-gnu/libmemusage.so
manpages: /usr/share/man/man1/memusagestat.1.gz

为什么有 memusage 的手册页,但没有命令本身?

它是不是只适用于 32 位 Ubuntu,而不适用于 64 位 Ubuntu?

注意:gmemusage(Ubuntu 建议的)是完全不同的东西。

PS:有没有其他方法可以让我找到程序中的分配热点?我想看看代码中所有内存都去了哪里。

操作系统:Ubuntu 18.04.4 LTS

答案1

memusage包含在libc-devtools套餐内自版本 2.31-8 起。此功能在 Ubuntu 21.04 及更高版本、Debian 11 及更高版本以及衍生版本中可用。

答案2

该脚本不包含在二进制包中,但存在于源代码形式

要从源代码编译它,请使用:

sudo apt-get install git
sudi apt-get build-dep libc6

cd ~/Downloads
apt-get source libc6
cd glibc-2.27/
dpkg-buildpackage -uc -us

然后转到malloc目录并尝试在此处找到脚本:

cd malloc
ls memusage*

可选择将其移动到/usr/local/bin

相关内容