[toc] 在开始介绍CMS和G1前,我们可以剧透几点: 根据不同分代的特点,收集器可能不同。有些收集器可以同时用于新生代和老年代,而有些时候,则需要分别为新生代或老年代选用合适的收集器。一般来说,新生代收集器的收集频率较高,应选用性能高效的收集器;而老年代收集器收集次数相对较少,对空间较为敏感,应 ...
分类:
其他好文 时间:
2019-10-22 11:05:35
阅读次数:
473
1、串行垃圾收集器线程:单线程,无需线程交互,效率高;适用于单核处理器,或者小数据量(100M)情况下 ; -XX:UseSerialGC : 打开串行收集器 2、并行垃圾收集器线程:多线程,减少垃圾回收时间,适用于多核处理器; -XX:UseParallelGC : 打开串行收集器,仅用于新生代; ...
分类:
其他好文 时间:
2019-10-16 13:27:43
阅读次数:
87
引言: 前面的文章提到,Heap包括了PSYoungGen、ParOldGen、Metaspace。JVM 在进行GC时,并非每次都对上面三个内存区域一起回收的,大部分时候回收的都是新生代。由于新生代和老年代的内存空间大小不同以及对象存活率不同,所以针对不同区域JVM采用了不同的GC,不同的GC是通 ...
分类:
编程语言 时间:
2019-10-15 13:42:41
阅读次数:
159
① 对象的内存分配,总体上讲就是在堆上分配,对象主要分配在新生代的Eden区,少数情况也会直接分配在老年代。分配的规则并不是百分百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数配置。 对象优先在Eden区分配 大多数情况下,对象在新生代Eden区分配。当Eden区 ...
分类:
其他好文 时间:
2019-10-08 22:22:17
阅读次数:
90
① Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略。 Java虚拟机根据对象存活的周期不同,把堆内存划分为几块,一般分为新生代、老年代和永久代(对HotSpot虚拟机而言),这就是JVM的内存分代策略 ...
分类:
其他好文 时间:
2019-10-08 21:44:26
阅读次数:
91
课上内容(Lesson) 词汇(Key Word ) # Word List born v.出生 contact n.联系人 information n.信息 interest v. 使...感兴趣 language n.语言 subject n.学科 apratment n.公寓 hometown ...
分类:
其他好文 时间:
2019-10-05 18:20:27
阅读次数:
132
我是用了netty搭建了一个UDP接收日志,堆启动配置 Xmx256 Xms256 ,项目刚启动的时候,系统进程占用内存很正常,在250M左右。 长时间运行之后发现,进程占用内存不断增长,远远超过了我设置的堆内存大小,查看幸存者,伊甸园,老年代,gc都很正常,堆使用数据一切正常,甚至我怀疑元空间占用 ...
分类:
其他好文 时间:
2019-09-27 12:29:18
阅读次数:
156
①:Serial(串行)收集器 最基本,历史最悠久的串行收集器,单线程组赛队列,jdk1.5之前默认的收集器。 优点:简单高效,没有线程交互的开销。 缺点:单线程,只会使用一个cpu/一条收集线程去完成垃圾收集。 对应算法:年轻代复制算法,老年代标记整理算法。 ②:ParNew收集器(Serial收 ...
分类:
其他好文 时间:
2019-09-27 01:11:55
阅读次数:
82
JVM内存包括区域 Heap(堆区) New Generation(新生代) Eden 伊甸园 Survivor From Survivor To Old Generation(老年代) 方法区 Permanent Generation(持久代) Stack(栈区) Metaspace(元空间) D ...
分类:
其他好文 时间:
2019-09-25 22:44:43
阅读次数:
154