当前位置: 首页 > 科技观察

使用smem命令获取内存使用统计

时间:2023-03-16 14:48:44 科技观察

smem命令可以让您快速查看您的Web应用程序的内存使用情况。在我的编程工作中,我经常需要了解Web应用程序的内存使用情况。在深入了解细节和浏览器分析工具之前,粗略估计通常就足够了。要了解Linux或macOS上的内存使用情况,人们通常使用top或htop。我希望看到一个数字:一个进程占用了多少内存。但是这些工具显示的统计数据可能难以理解。对于web浏览器,它甚至更复杂,因为它们通常运行许多单独的进程。它们在顶部输出中显示为一个长列表,每个列表都有自己单独的指标。幸运的是,Memoryusageusinghtopsmem命令有smem,这是另一个用于查看内存使用统计信息的命令行工具。使用您选择的包管理器安装它,例如:sudoaptinstallsmem要获取Firefox的总内存使用情况,请执行:smem-cpss-Pfirefox-k-t|tail-n1这些开关有什么作用?-c开关指定要显示的列。我只对pss列感兴趣,它显示进程分配的内存。-P开关过滤进程以仅包括名称中带有firefox的进程。-k开关以MB/GB而非纯字节显示内存使用情况。-t开关显示总数。tail-n1filter只输出最后一行,也就是total所在的地方。输出非常简单:$smem-t-k-cpss-Pfirefox|tail-n14.9G开门见山!而且,在打开了50多个选项卡又忙碌了一天之后,Firefox仍然只使用5GB。检查一下,谷歌浏览器。使用脚本更简单为了方便起见,我创建了一个名为memory-use的小脚本,它将进程名称作为参数。我把我所有的脚本都放在~/bin中,所以:echo'smem-cpss-P"$1"-k-t|tail-n1'>~/bin/memory-use&&chmod+x~/bin/memory-use现在我可以轻松测量任何应用程序的内存使用情况:memory-usefirefoxmemory-usechromememory-useslack等等!该工具不仅仅显示总内存使用情况。它甚至可以生成图形输出。例如:smem--piename-cpss显示如下内容:smem的饼图输出有关详细信息,我建议查看smem手册页。您可以在https://linoxide.com/memory-usage-reporting-smem/找到另一个很棒的教程。