You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从jcmd命令输出中高效提取堆内存total与used值?

从jcmd GC.heap_info输出中提取堆内存total和used值的方法

需求说明

需要从jcmd <PID> GC.heap_info的输出里,快速提取堆内存的total(示例中33521664K)和used(示例中22917322K)数值。

高效提取方案

方案1:单awk命令(最简洁)

直接用awk定位目标行并提取字段,一步到位:

jcmd 27047 GC.heap_info | awk '/garbage-first heap/ {printf "total: %s\nused: %s\n", $4, $6}'

执行后输出示例:

total: 33521664K
used: 22917322K

原理:awk匹配包含garbage-first heap的行,$4对应total后的数值,$6对应used后的数值,用printf格式化输出更清晰。

方案2:grep+awk组合(直观易读)

先过滤出目标行,再提取对应数值,适合新手理解:

# 同时获取total和used
jcmd 27047 GC.heap_info | grep "garbage-first heap" | awk '{print "total:", $4, "used:", $6}'

# 单独提取total
jcmd 27047 GC.heap_info | grep "garbage-first heap" | awk '{print $4}'

# 单独提取used
jcmd 27047 GC.heap_info | grep "garbage-first heap" | awk '{print $6}'

方案3:sed正则提取

用sed的正则捕获功能直接匹配数值:

# 提取total值
jcmd 27047 GC.heap_info | sed -n 's/.*total \([0-9K]*\),.*/\1/p'

# 提取used值
jcmd 27047 GC.heap_info | sed -n 's/.*used \([0-9K]*\).*/\1/p'

原理:正则\([0-9K]*\)捕获total或used后面的数字+K组合,\1输出捕获的内容,-n和p确保只输出匹配到的行。


内容的提问来源于stack exchange,提问作者rvk_user

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 05:35:30