随笔-java进行内存分析

n=$1
if [ -z $n  ];
then
    n=10
fi
pid=`jps -lv|grep Server|awk '{print $1}'`
jmap -histo:live $pid >jmap1.txt
sleep 10
jmap -histo:live $pid >jmap2.txt
cat jmap1.txt|sed 's/\[/\\[/g' >fjmap1.txt
cat jmap2.txt|sed 's/\[/\\[/g' >fjmap2.txt
obj_l=`cat fjmap2.txt |sed -n '4,$p'|awk {'print $4 '}|head -n $n`
objnum_l=`cat fjmap2.txt |sed -n '4,$p'|awk {'print $3 '}|head -n $n`
objcount_l=`cat fjmap2.txt |sed -n '4,$p'|awk {'print $2 '}|head -n $n`
#echo $obj_l
i=1
for obj in $obj_l
do
	echo No.$i:
	target=`echo $obj|awk {'print $1'}`
	echo $target
	num2=`echo $objnum_l|cut -d " " -f $i`
	num1=`cat fjmap1.txt |sed -n '4,$p'|grep "$target"|head -n 1|awk {'print $3'}`
	count2=`echo $objcount_l|cut -d " " -f $i`
	count1=`cat fjmap1.txt |sed -n '4,$p'|grep "$target"|head -n 1|awk {'print $2'}`
	if [ -z $num2 ];then
        	num2=0
	fi
        if [ -z $num1 ];then
                num1=0
        fi
	if [ -z $count2 ];then
                count2=0
        fi
        if [ -z $count1 ];then
                count1=0
        fi
	num=`expr $num2 - $num1`
	echo "charge_heap:$num"
	count=`expr $count2 - $count1`
        echo "charge_count:$count"
	((i=i+1))

done
#echo `cat jmap1.txt |grep javax.xml.namespace.QName|head -n 1|awk {'print $3'}`

建议可以在java出现fgc的时候调用此脚本

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值