零. 新生代调优规律 增大新生代空间。 Minor GC 频率降低, Minor GC 时间上升。 降低新生代空间, Minor GC 频率上升, Minor GC 时间下降 一. 新生代典型问题 先看一段 GC 日志:新生代使用 ParNew。 老年代使用 CMS {Heap before GC ...
分类:
其他好文 时间:
2017-07-19 14:18:04
阅读次数:
197
这张图我相信基本上对JVM有点接触的都应该很熟悉,可以说这是JVM入门的第一课。其中的“堆”和“虚拟机栈(栈)”更是耳熟能详。下面将围绕这张图对JVM的运行时数据区做一个简单介绍。 程序计数器(Program Counter Register) 这和计算机操作系统中的程序计数器类似,在计算机操作系统 ...
分类:
其他好文 时间:
2017-07-12 10:21:57
阅读次数:
163
垃圾收集器 引用计数器: 从gc日志可以看出是回收了,java虚假没有选用引用计数器算法管理内存 可达性分析算法 ?线程池中线程是维持一个数量还是,用已经有的线程? 回收方法区 垃圾收集器 垃圾收集器根据应用场景和内存回收范围来选择。根据新生代、老年代,高性能服务器、客户端,计算密集场景、高响应场景... ...
分类:
其他好文 时间:
2017-07-08 21:13:03
阅读次数:
308
Hotspot垃圾回收器 HotSpot虚拟机提供了多种垃圾收集器,每种收集器都有各自的特点,没有最好的垃圾收集器,只有最适合的垃圾收集器。我们可以根据自己实际的应用需求选择最适合的垃圾收集器。根据新生代和老年代各自的特点,我们应该分别为它们选择不同的收集器,以提升垃圾回收效率。 一、新生代垃圾收集 ...
分类:
其他好文 时间:
2017-07-07 00:53:04
阅读次数:
286
1,新生代:(1)所有对象创建在新生代的Eden区,当Eden区满后触发新生代的Minor GC,将Eden区和非空闲Survivor区存活的对象复制到另外一个空闲的Survivor区中。(2)保证一个Survivor区是空的,新生代Minor GC就是在两个Survivor区之间相互复制存活对象, ...
分类:
其他好文 时间:
2017-07-01 01:01:50
阅读次数:
156
JVM常用参数-XX:+<option>启用选项-XX:-<option>不启用选项-XX:<option>=<number>-XX:<option>=<string>堆设置-Xms:初始堆大小-Xmx:最大堆大小-Xmn:新生代大校通常为Xmx的1/3或1/4。新生代=Eden+2个Survivor空间。实际可用空间为=Eden+1..
分类:
其他好文 时间:
2017-06-27 13:52:18
阅读次数:
160
JVM调优(最关键参数为:-Xms-Xmx-Xmn-XX:SurvivorRatio-XX:MaxTenuringThreshold)代大小调优:避免新生代大小设置过孝避免新生代大小设置过大、避免Survivor设置过小或过大、合理设置新生代存活周期。-Xmn调整新生代大小,新生代越大通常也意味着更多对象会在minorGC阶段被回..
分类:
编程语言 时间:
2017-06-27 13:51:18
阅读次数:
101
解决两个问题: 1、对象分配内存; 2、回收分配给对象的内存。 本节详细讲解分配的问题: 名词解释: 新生代GC(Minor GC):指发生在新生代的垃圾回收动作,非常频繁,回收速度很快。 老生代GC(Major GC/Full GC):指发生在老生代的垃圾回收动作,出现了Major GC,经常会伴 ...
分类:
其他好文 时间:
2017-06-24 18:43:01
阅读次数:
159
jvm虚拟机在运行时需要用到的内存区域.广泛一点就是堆和栈,其实不然,堆和栈只是相对比较笼统的说法,真正区分有如下几个 先上图一: 总的就是 java的内存模型 内存模型又分堆内存(heap)和方法区(有时也称为non-heap)和栈 堆又分新生代(Young)和老年代(old/Tenured) 新 ...
分类:
编程语言 时间:
2017-06-23 23:54:04
阅读次数:
424
主要讨论默认的Serial/Serial Old内存分配: 一、几种分配方案 1. 对象优先在Eden分配; 一般情况下,对象会在新生代的Eden区分配,Eden区没有足够空间时,虚拟机会 发起一次MinorGC;当MinorGC时,若无法放入survivor空间,就会再通过分配担保机制转移到老年代 ...
分类:
编程语言 时间:
2017-06-19 14:22:03
阅读次数:
198