堆内存模型: 在Java中,堆被划分成两个不同的区域:新生代(Young),老年代(Old)。而Permanent属于永久代(方法区),不属于堆内存。新生代又被分为了三个区域:Eden,from survivor,to survivor。这样划分的目的是为了使JVM能够更好 ...
分类:
其他好文 时间:
2019-06-19 12:07:14
阅读次数:
106
内存分配策略 1、对象优先分配在新生代Eden区 多数情况下,对象分配在新生代的Eden,若Eden区域内存不够,则引发一次Minor GC 2、大对象直接进入老年代 大对象直接分配在老年代,避免新生代里出现从Eden到Survivor频繁的内存复制 可用-XX:PretenureSizeThres ...
分类:
其他好文 时间:
2019-06-15 17:14:44
阅读次数:
79
内存分配 原则: 优先分配到eden 大对象直接分配到老年代 长期存活的对象分配到老年代 空间分配担保 动态对象年龄判断 验证优先分配到eden 验证空间分配担保 VM arguments: -verbose:gc -XX:+PrintGCDetails -XX:+UseSerialGC -Xms2 ...
分类:
其他好文 时间:
2019-06-13 00:28:16
阅读次数:
99
CMS(Concurrent Mark-Sweep)是以牺牲吞吐量为代价来获得最短回收停顿时间。对于要求服务器响应速度的应用上,这种垃圾回收器非常适合。在启动JVM参数加上-XX:+UseConcMarkSweepGC ,这个参数表示对于老年代的回收采用CMS。CMS采用的基础算法是:标记—清除。 ...
分类:
编程语言 时间:
2019-05-30 01:12:53
阅读次数:
133
垃圾收集算法 分代收集算法:当前商业虚拟机的垃圾收集都采用“分代收集”算法,这种算法并没有什么新的思想,只是根据对象存活的周期的不同将内存划分为几块。一般是把Java堆分为新生代和老年代,这样就可以根据各个年代的特点采用最合适的收集算法。在新生代中,每次垃圾收集时都发现有大批对象死去,只有少量存活, ...
分类:
其他好文 时间:
2019-05-17 10:46:50
阅读次数:
112
GC回收java堆和方法区的内存,判断对象是否存活采用可达性分析算法。 GC算法有四种:标记-清除算法、复制算法、标记-整理算法、分代收集算法,当前商业虚拟机都采用分代收集算法:新生代和老年代,其中新生代采用复制算法,老年代采用标记清除或标记整理算法。 七种垃圾收集器: 1、Serial收集器 2、 ...
分类:
编程语言 时间:
2019-05-11 09:31:56
阅读次数:
140
串行回收和并行回收串行回收:JDK1.5前的默认算法,执行垃圾回收时程序停止时间较长,缺点是只有一个线程并行回收:多个线程执行垃圾回收,适合吞吐量系统,回收时系统停止运行Serial收集器最古老的、最稳定的的收集器,可能产生较长的停顿,仅适用单线程收集,新生代、老年代均采用串行回收,新生代采用赋值算法,老年代采用标记->压缩算法,垃圾收集过程中会StopTheWorld(服务暂停)特点:CP
分类:
其他好文 时间:
2019-04-24 09:22:30
阅读次数:
179
常见参数配置-XX:+PrintGC每次触发GC的时候打印相关日志-XX:+UseSerialGC串行回收-XX:+PrintGCDetails更详细的GC日志-Xms堆初始值-Xmx堆最大可用值-Xmn新生代堆最大可用值-XX:SurvivorRatio用来设置新生代中eden空间和from/to空间的比例.-XX:NewRatio配置新生代与老年代占比1:2-XX:SurvivorRatio用
分类:
其他好文 时间:
2019-04-23 19:23:13
阅读次数:
120
-XX: MaxDirectMemorySize >设置直接内存,不设置与Java堆内存最大值一致,就是jvm虚拟机运行可支配的内存 -XX:PermSize(老年代大小)和-XX:MaxPermSize(永久代大小) >设置方法区大小 -Xoss >设置本地方法栈大小(实际无效,栈容量只由-Xss ...
分类:
其他好文 时间:
2019-04-22 15:14:37
阅读次数:
346
CMS全称?ConcurrentMarkSweep,是一款并发的、使用标记 清除算法的垃圾回收器, 如果老年代使用CMS垃圾回收器,需要添加虚拟机参数 “XX:+UseConcMarkSweepGC” 缺点: 1. CMS收集器对CPU资源非常敏感,在并发阶段,它虽然不会导致用户线程停顿,但是由于占 ...
分类:
其他好文 时间:
2019-04-13 01:21:45
阅读次数:
302