java内存溢出的OutOfMemoryError异常

 我来答
霸气417
2016-06-02 · 超过55用户采纳过TA的回答
知道答主
回答量:167
采纳率:100%
帮助的人:127万
展开全部

堆的最小值:-Xms 如-Xms20m
堆的最大值 -Xmx 如果设为一样的则可避免堆自动扩展。
年轻代大小: -Xmn
-XX:+HeapDumpOnOutOfMemoryError 当内存溢出时Dump出当前的内存堆转存快照。
Eclipse中虚拟机参数设置:debug As-->open dubug dialog
生成之后使用Eclipse Memory Analyzer 进行堆转储文件分析(需要安装MAT插件)。 -Xss:设置每条线程的Statck大小.在JDK1.5以后默认是1M,之前是256K
抛出StackOverFlow异常:操作系统分配给每个线程的内存是有限的,机器总内存减去Xmx再减去MaxPermSize,程序计数器占内存很少忽略,剩下的内存被虚拟机栈和本地方法栈瓜分,每个线程分到的栈容量越大,分配的线程数就小。正常情况栈深度1000-2000没问题,如果是建立更多线程导致的内存溢出,在不能减少线程的情况下,只能通过减小Xmx和栈容量来换取更多线程。 -PermSize :方法区的初始容量,默认是物理内存的1/64
-MaxPermSize :最大方法区容量。 -XX:MaxDirectMemorySize 本机直接内存大小,如果不指定,则与Xmx一样

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式