package chapter3;
/**
* 测试使用的是Serial / Serial Old收集器
* VM args: -Xms20M -Xmx20M -Xmn10M -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:+UseSerialGC
* Created by zhaoshiqiang on 2017/7/23.
*/
public class testAllocation {
private static final int _1MB = 1024 * 1024;
public static void main(String[] args) {
byte[] allocation1,allocation2,allocation3,allocation4,allocation5,allocation6,allocation7;
allocation1 = new byte[ 2 * _1MB];
allocation2 = new byte[ 2 * _1MB];
allocation3 = new byte[ 2 * _1MB];
allocation1 = null;
/*
* 出现一次Minor GC,这是因为给allocation4分配所需的2M内存时,发现Eden已经被占用7.8MB(6MB对象,其他为程序所需空间),
* 剩余空间已经不足以分配allocation4的2MB内存,所以发生MinorGC。
* 不过,因为allocation2,allocation3都有引用,所以这次GC总内存占用量减少了allocation1的2M(7645K->4714K)
* GC期间JVM发现已有的2个2MB大小的对象全部无法放入Survivor空间(Survivor空间只有1MB大小),
* 所以只好通过担保机制提前转移到老年代了(tenured generation total 10240K, used 4096K )
* */
allocation4 = new byte[ 2 * _1MB];
allocation5 = new byte[ 2 * _1MB];
allocation6 = new byte[ 2 * _1MB];
allocation5 = null;
allocation6 = null;
allocation2 = null;
/*
* 这里再出现一次Minor GC,出现的原因同上。
* allocation5,allocation6被清空,
* allocation4无法放入Survior区,所以通过担保机制进入老年代,此时新生代为空(7004K->1K(9216K))
* 虽然老年代中的allocation2已经失效,但是因为老年代的GC没有触发,
* 所以老年代被占用6MB(tenured generation total 10240K, used 6760K)
*
* */
allocation7 = new byte[ 2 * _1MB];
allocation7 = null;
//经过这次System.gc(),老年代将把失效的allocation2空间删除,整理后为4MB(Tenured: 6763K->4710K(10240K))
System.gc();
}
}
baidu_16992441
- 粉丝: 311
- 资源: 1041
最新资源
- 1Cr18Ni9Ti钢板焊接接头冷弯开裂的试验研究.pdf
- 1Cr18Ni9Ti钎焊接头组织和性能影响研究 - .pdf
- 2.25 Cr-1 Mo钢制加氢反应器的焊接裂纹(二)-对焊接裂纹性质的试验研究.pdf
- 1Crl8Ni9Ti不锈钢复合管系的焊接 - .pdf
- 2.25Cr-1Mo-0.25V低合金钢用焊接材料的检验 - .pdf
- 2.25-1Mo钢焊后产生焊接裂纹的原因分析及其返修措施.pdf
- 2.25 Cr-1 Mo钢制加氢反应器的焊接裂纹(一)-在制过程中出现的焊接裂纹.pdf
- 2.25Cr-1Mo-0.25V钢焊接材料的再热裂纹敏感性试验方法探讨.pdf
- 2A12厚板铝合金搅拌摩擦焊接头组织性能研究 - .pdf
- 2万立立式液氢高压容器的焊接研制.pdf
- 2A14铝合金法兰焊接裂纹修复.pdf
- 3.5%Ni钢焊接接头的低温韧性研究三──熔敷金属碳含量等因素的影响.pdf
- 3.5%Ni钢焊接技术的最近进展.pdf
- 3.5%Ni钢焊接接头低温韧性的研究二──焊后热处理母材及焊材的影响.pdf
- 3.5%Ni钢焊接接头低温韧性的研究一──线能量层间温度的影响.pdf
- 3.5Ni钢低温设备的制造和焊接.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈