Java面试问题之四十九

问题:请问当你写的程序出现OutOfMemoryError的时候,你该如何进行排查?使用什么Java命令参数和方法呢?

答:可以尝试使用VM arguments来协助排查,主要分为以下几个步骤:
(1)预估你的程序使用内存的大小,尽可能估计一个准确的范围且这个范围一定需要比运行你的程序所需的最低内存大1倍(经验值)。
(2)假定估计消耗内存的值为10M,那么应该使用虚拟机参数-Xms10M(最小值)和-Xmx10M(最大值)[注意:这里设置最大值和最小值相等来避免堆空间的自动扩展]。
(3)再设定虚拟机参数-XX:+HeapDumpOnOutOfMemoryError来转储当OutOfMemoryError发生时内存空间的所有内容,这些内容保存到一个文件中。
(4)分析包含内存信息的文件进一步确定哪些对象消耗了过多的内容空间或者是在什么地方造成了内存泄露。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值