拥有 内存模型 标签的文章 共 2 条数据

导致JVM进行Full GC的情况及解决办法
技术杂谈

导致JVM进行Full GC的情况及解决办法

2951次浏览 0条评论

堆内存划分为 Eden、Survivor 和 Tenured/Old 空间,如下图所示:对年轻代(包括 Eden 和 Survivor 区域)进行GC被称为 Minor GC,对老年代进行GC称为Major GC,而Full GC是对整个堆来说的,在最近几个版本的JDK里默认包括了对永生带即方法区的回收(JDK8中无永生带了),出现Full GC的时候经常伴随至少一次的Minor GC,但非绝对的。Major GC的速度一般会比Minor GC慢10倍以上。下边看看有那种情况会导致JVM进行Full GC及解决办法。1、System.gc()方法的调用 此方法的调用是建议JVM进行Full GC,虽然只是建议而非一定,但很多情况下它会触发 Full GC,从而增加Full GC的频率,也即增加了间歇性停顿的次数。建议能不使用此方法就别使用,让虚拟机自己去管理它的内存,可通过通过-XX:+ DisableExplicitGC来禁止RMI调用System.gc()。2、老年代空间不足老年代空间只有在新生代对象转入及创建为大对象、大数组时才会出现不足的现象,当执行Full GC后空间仍然不足

深入理解Java内存模型 程晓明著 PDF下载
编程书籍

深入理解Java内存模型 程晓明著 PDF下载

4846次浏览 1条评论

本书第1版两年内印刷近10次,4家网上书店的评论近4?000条,98%以上的评论全部为5星级的好评,是整个Java图书领域公认的经典著作和超级畅销书,繁体版在台湾也十分受欢迎。第2版在第1版的基础上做了很大的改进:根据JDK1.7对全书内容进行了全面的升级和补充;增加了大量处理各种常见JVM问题的技巧和*实践;增加了若干与生产环境相结合的实战案例;对第1版中的错误和不足之处的修正;等等。第2版不仅技术更新、内容更丰富,而且实战性更强。前言第一部分 走近Java第1章 走近Java1.1 概述1.2 Java技术体系1.3 Java发展史1.4 Java虚拟机发展史1.4.1 Sun Classic Exact VM1.4.2 Sun HotSpot VM1.4.3 Sun Mobile-Embedded VM Meta-Circular VM1.4.4 BEA JRockit IBM J9 VM1.4.5 Azul VM BEA Liquid VM1.4.6 Apache Harmony Google Android Dalvik VM1.4.7 Microsoft JVM及其他1.5