使用此 Linux 命令行工具获取内存使用统计信息
smem 命令允许您快速查看 Web 应用程序的内存使用情况。
在我的编程工作中,我经常需要了解Web应用程序使用的内存。在开始讨论细节和浏览器分析工具之前,粗略的估计通常就足够了。
要询问 Linux 或 macOS 上的内存使用情况,人们通常使用 top 或 htop。我很想看到一个数字:一个进程占用了多少 RAM。但这些实用程序显示的统计数据可能很难理解。对于网络浏览器来说,情况甚至更加复杂,因为它们经常运行许多单独的进程。它们都以长列表的形式出现在顶部输出中,每个都有自己的单独指标。
(托马斯·瓦拉克萨,CC BY-SA 4.0)
幸运的是,有 smem,这是另一个用于查看内存使用统计信息的命令行实用程序。使用您选择的包管理器安装它,例如:
sudo apt install smem要获取 Firefox 的总内存使用情况,请执行以下操作:
smem -c pss -P firefox -k -t | tail -n 1这里会发生什么?
-c开关指定要显示的列。我只对 pss 列感兴趣,该列显示进程分配的内存。-P切换过滤器进程以仅包含名称中带有 firefox 的进程-k开关告诉以兆/千兆字节而不是普通字节显示内存使用情况-t开关显示总计tail -n 1过滤器仅输出最后一行,即总数所在的位置
输出非常简单:
$ smem -t -k -c pss -P firefox | tail -n 1
4.9G开门见山!而且,在又忙碌了一天之后,打开了 50 多个选项卡,Firefox 仍然只使用了 5 GB。拿走,谷歌浏览器;-)
使用脚本更容易
为了方便起见,创建一个名为 memory-use 的小脚本,它将进程名称作为参数。我将所有脚本保存在 ~/bin 中,因此:
echo 'smem -c pss -P "$1" -k -t | tail -n 1' > ~/bin/memory-use && chmod +x ~/bin/memory-use现在我可以测量任何应用程序的内存使用情况,如下所示:
memory-use firefox
memory-use chrome
memory-use slack还有更多!
该实用程序的功能远不止显示总内存使用量。它甚至可以生成图形输出。
例如:
smem --pie name -c pss显示类似这样的内容:
(托马斯·瓦拉克萨,CC BY-SA 4.0)
有关更多详细信息,我建议查看 smem 手册页。
您可以在 https://linoxy.com/memory-usage-reporting-smem/ 找到另一个很棒的教程。
享受!
本文最初出现在作者的博客上,经许可重新发布。


