代码如下:
public static void main(String[] args) throws InterruptedException {
Thread.sleep(10000);
List<DataObject> objects = new ArrayList<DataObject>();
for(int i=0;i<23285; i++)
{
objects.add(new DataObject(1));
}
objects.size();
objects = null;
Thread.sleep(3000); }
class DataObject{
byte[] bytes = null;
public DataObject(int factor){
bytes = new byte[factor * 1024];
}
}运行参数如下:
-Xms150M -Xmx150M -Xmn30M -XX:+UseSerialGC
运行结果:用jstat观察
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 3072.0 24576.0 492.6 122880.0 21190.4 12288.0 373.3 1 0.022 0 0.000 0.022
3072.0 3072.0 0.0 3072.0 24576.0 492.6 122880.0 21190.4 12288.0 373.3 1 0.022 0 0.000 0.022
3072.0 3072.0 0.0 3072.0 24576.0 492.6 122880.0 21190.4 12288.0 373.3 1 0.022 0 0.000 0.022
3072.0 3072.0 0.0 3072.0 24576.0 492.6 122880.0 21190.4 12288.0 373.3 1 0.022 0 0.000 0.022这个触发了Minor GC后为什么不是把所有的对象都弄到旧生代里,而是有些还在Suvirvor里呢?
public static void main(String[] args) throws InterruptedException {
Thread.sleep(10000);
List<DataObject> objects = new ArrayList<DataObject>();
for(int i=0;i<23285; i++)
{
objects.add(new DataObject(1));
}
objects.size();
objects = null;
Thread.sleep(3000); }
class DataObject{
byte[] bytes = null;
public DataObject(int factor){
bytes = new byte[factor * 1024];
}
}运行参数如下:
-Xms150M -Xmx150M -Xmn30M -XX:+UseSerialGC
运行结果:用jstat观察
S0C S1C S0U S1U EC EU OC OU PC PU YGC YGCT FGC FGCT GCT
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 0.0 24576.0 491.5 122880.0 0.0 12288.0 372.4 0 0.000 0 0.000 0.000
3072.0 3072.0 0.0 3072.0 24576.0 492.6 122880.0 21190.4 12288.0 373.3 1 0.022 0 0.000 0.022
3072.0 3072.0 0.0 3072.0 24576.0 492.6 122880.0 21190.4 12288.0 373.3 1 0.022 0 0.000 0.022
3072.0 3072.0 0.0 3072.0 24576.0 492.6 122880.0 21190.4 12288.0 373.3 1 0.022 0 0.000 0.022
3072.0 3072.0 0.0 3072.0 24576.0 492.6 122880.0 21190.4 12288.0 373.3 1 0.022 0 0.000 0.022这个触发了Minor GC后为什么不是把所有的对象都弄到旧生代里,而是有些还在Suvirvor里呢?
解决方案 »
- 紧急求助,各位大神帮帮忙
- java socket 怎样实现服务端和客户端不间断的读取和写入?
- 一个关于jfreechart的饼图,热点链接
- 现在大家都用Struts什么版本的???
- struts2标签迭代的问题
- ajax..无法从xml里面获得值
- tomcat5.5 URIEncoding="GBK" 失败
- 怎样让InputStream 的内容显示在JTextArea中
- 一个VC调Java SOAP的棘手问题!
- jbuilder+weblogic进行开发,加入打印程序,为什么服务器会停止?高手帮忙!!
- HibernateTemplate() 使用问题
- 通过url创建file对象 无法获得FileInputStream吗?
for(int i=0;i<23285; i++)
{
objects.add(new DataObject(1));
}
每次创建1k共计也就23M左右,不会触发GC