Eclipse设置虚拟机参数 (转 构建内存溢出)
Java -verbose:gc 中参数-verbose:gc 表示输出虚拟机中GC的详细情况.
首先在Eclipse的Debug页签中设置虚拟机参数:
步骤:
1、选中已经写好的项目
2、Run->Debug configurations->Java Application 双击
3、Arguments->VM arguments
4、在VM arguments 里面就可以对虚拟机的内存参数进行设置
5、设置完成后,Apply->Debug
6、过程结束
采用《深入理解java虚拟机》的代码:
package com.xc;
import java.util.ArrayList;
import java.util.List;
public class HeapOOM {
static class OOMObject{
}
public static void main(String[] args) {
List<OOMObject> list = new ArrayList<OOMObject>();
while(true){
list.add(new OOMObject());
}
}
}
然后设置页面如下:
参数解释:
1,堆是存储对象实例的,创建的对象都是在堆中进行内存分配的;设置堆的大小:-Xmx20M(最大值) ,-Xms20M(最小值), 其中-Xmn设置年轻代大小。
2,栈是存储局部变量,操作栈,动态链接,方法出口(都在栈桢中) 的地方,调用方法时,会创建栈桢;设置栈的大小:-Xss128K。
3,方法区是存放Class的相关信息,如类名,访问修饰符,常量池,字段描述,方法描述等。此外运行时常量池是属于方法区的,即存放常量,静态常量等;设置方法区大小,-XX:PermSize=10M和-XX:MaxPermSize=10M。
4,本地直接内存;设置本地直接内存大小:-XX:MaxDirectMemorySize(默认与-Xmx的值一样)。
Debug结果:
[GC (Allocation Failure) 8018K->4708K(19456K), 0.0115198 secs]
[GC (Allocation Failure) 12900K->10789K(19456K), 0.0141827 secs]
[Full GC (Allocation Failure) 18981K->14407K(19456K), 0.0437842 secs]
[Full GC (Allocation Failure) 14730K->14730K(19456K), 0.0329332 secs]
[Full GC (Allocation Failure) 14730K->14719K(19456K), 0.0356075 secs]
java.lang.OutOfMemoryError: Java heap space
Dumping heap to java_pid12508.hprof ...
Heap dump file created [26562042 bytes in 0.149 secs]
出现Java堆内存溢出时,异常堆栈信息 java.lang.OutOfMemoryError,会跟着进一步提示 : Java heap space。
接下来 就是 调试 分析的过程了 暂且不写了 要继续上班咯~
Eclipse设置虚拟机参数 (转 构建内存溢出)的更多相关文章
- 转:在Eclipse的Debug页签中设置虚拟机参数
http://blog.csdn.net/decorator2015/article/details/50914479 在Eclipse的Debug页签中设置虚拟机参数 步骤 1,Run->De ...
- Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space
Eclipse部署多个Web项目内存溢出,java.lang.OutOfMemoryError: PermGen space >>>>>>>>>& ...
- 【深入Java虚拟机】之三:内存溢出
为了更直接的了解各区域,下面我们来看几个示例. 1.Java 堆溢出 下面的程中我们限制Java 堆的大小为20MB,不可扩展(将堆的最小值-Xms 参 数与最大值-Xmx 参数设置为一样即可避免堆自 ...
- Eclipse中运行Tomcat遇到的内存溢出错误
使用Eclipse(版本Indigo 3.7)调试Java项目的时候,遇到了下面的错误: Exception in thread "main" Java.lang.OutOfMem ...
- jvm 虚拟机参数_堆内存分配
1.参数 -XX:+PrintGC 只要遇到 GC 就会打印日志 -XX:+UseSerialGC 配置串行回收器 -XX:+PrintGCDetails 查看详细信息,包括各个区的情况 -XX:+P ...
- Java8虚拟机(JVM)内存溢出实战
前言 相信很多JAVA中高级的同学在面试的时候会经常碰到一个面试题 你是如何在工作中对JVM调优和排查定位问题的? 事实上,如果用户量不大的情况下,在你的代码还算正常的情况下,在工作中除非真正碰到与J ...
- 【java虚拟机】几种内存溢出及解决方案
作者:平凡希 地址:https://www.cnblogs.com/xiaoxi/p/7406903.html 1.JVM Heap(堆)溢出:java.lang.OutOfMemoryError: ...
- jvm 虚拟机参数_新生代内存分配
1.参数 -Xmn 设置新生代的大小,设置一个比较大的新生代会减少老年代的大小,这个参数对系统性能以及 GC 行为影响很大,新生代大小一般设置为真个堆内存的1/3到1/4 -XX:SurvivorRa ...
- Eclipse设置jvm参数的三种方式
方式1. 修改Elipse运行JRE默认JVM参数打开Eclipse,选择Window--Preferences...在对话框左边的树上双击Java,再双击Installed JREs,在右边选择前面 ...
随机推荐
- Jquery选择器 选择一个不存在的元素 为什么不会返回 false
不管找没找到,$()函数都会返回一个jquery对象,这个jquery对象有个length属性,表示找到多少个匹配的DOM元素,为0就是没找到.
- byte转文件流 下载到本地
此方法将byte类型文件转为文件流保存到本地 byte 经过BASE64Decoder 进行编码之后的类型 所以需要解码 防止出现乱码及文件损毁 /** * byte 转文件 下载到本地 * @par ...
- P4842 城市旅行
题目链接 题意分析 首先存在树上的删边连边操作 所以我们使用\(LCT\)维护 然后考虑怎么维护答案 可以发现 对于一条链 我们编号为\(1,2,3,...,n\) 那么期望就是 \[\frac{a_ ...
- 架构师养成记--16.disruptor并发框架中RingBuffer的使用
很多时候我们只需要消息中间件这样的功能,那么直需要RinBuffer就可以了. 入口: import java.util.concurrent.Callable; import java.util.c ...
- canvas+js+面向对象的矩形封装
效果: Rect.js /* 1. 封装属性: x, y w , h, fillStyle strokeStyle rotation opacity 2.render */ function Rect ...
- Java线程池的选择
在java的concurrent.Executors主要提供两种线程池:无固定线程数但有限制任务队列的cachedThreadPool与有固定线程数但无任务队列限制的fixedThreadPool,这 ...
- 分布问题(二元,多元变量分布,Beta,Dir)
这涉及到数学的概率问题. 二元变量分布: 伯努利分布,就是0-1分布(比如一次抛硬币,正面朝上概率) 那么一次抛硬币的概率分布如下: 假设训练数据如下: 那么根据最大似然估计(MLE),我 ...
- 关于 unsigned long long 于 long long
long long 最大只有19位 : unsigned long long 最大有20位 ,原因牺牲了符合位来换取更大的记录
- [转] spark-submit 提交任务及参数说明
[From] https://www.cnblogs.com/weiweifeng/p/8073553.html#undefined spark-submit 可以提交任务到 spark 集群执行,也 ...
- 【GIS新探索】算法实现在不规则区域内均匀分布点
1 概要 在不规则区域内均匀分布点,这个需求初看可能不好理解.如果设想一下需求场景就比较简单了. 场景1:在某个地区范围内,例如A市区有100W人口,需要将这100W人口在地图上面相对均匀的标识出来. ...