目录 GC的概念 回收算法 引用计数算法:(老牌垃圾回收算法。无法处理循环引用,没有被Java采纳) 1、引用计数算法的概念: 根搜索算法 标记-清除算法 复制算法:(新生代的GC) 标记-整理算法:(老年代的GC) 分代收集算法:(新生代的GC+老年代的GC) Minor GC和Full GC 可 ...
分类:
其他好文 时间:
2018-09-11 21:17:02
阅读次数:
157
三、内存分配与回收策略 三、内存分配与回收策略 1.1 Minor GC 和 Full GC 1.1 Minor GC 和 Full GC Minor GC:发生在新生代上,因为新生代对象存活时间很短,因此 Minor GC 会频繁执行,执行的速度一般也会比较快。 Full GC:发生在老年代上,老 ...
分类:
编程语言 时间:
2018-09-09 11:37:27
阅读次数:
164
1.内存分配与回收策略 2.对象优先在Eden 分配 Full GC 是整个堆的GC,会清理老年代和新生代。 3.大对象直接进入老年代 4.长期存活的对象进入老年代 5.动态年龄判断。 6.空间分配担保 ...
分类:
其他好文 时间:
2018-09-08 11:52:03
阅读次数:
193
Java堆是垃圾收集器管理的主要区域。因为基本采用分代收集算法,所以Java堆可以细分为新生代和老年代,更细致是Eden、From Survivor和To Survivor。划分的目的是更好地回收内存或更快地分配内存。根据JVM规范,Java堆可以处于物理上不连续的内存空间中,要求逻辑上连续。 1 ...
分类:
其他好文 时间:
2018-09-05 12:10:18
阅读次数:
126
一、简介 Java GC(Garbage Collection,垃圾回收)机制,是Java与C++/C的主要区别之一 在C++/C语言中,程序员必须小心谨慎地处理每一项内存分配,且内存使用完后必须手工释放曾经占用的内存空间。当内存释放不够完全时,即存在分配但永不释放的内存块,就会引起内存泄漏,严重时 ...
分类:
其他好文 时间:
2018-08-27 18:08:51
阅读次数:
214
java堆空间分为 新生代 ,老年代 , 持久代 各自有各自的垃圾回收算法 eden区:新生的对象存放在这经常被回收 from 、to 存活区 在老年代,回收的频率不是很高 jdk8 就没有持久代了 重名为元数据 默认jdk的内存空间太小需要优化 Tomcat的常用优化配置: (1) 内存空间: / ...
分类:
编程语言 时间:
2018-08-26 19:44:42
阅读次数:
143
垃圾回收 垃圾回收主要思考三件事情: 哪种内存需要回收? 什么时候回收? 怎么回收? 第一步、判断对象是否存活 引用计数法 这是一种非常简单易理解的回收算法。每当有一个地方引用一个对象的时候则在引用计数器上 +1,当失效的时候就 -1,无论什么时候计数器为 0 的时候则认为该对象死亡可以回收了。 这 ...
分类:
编程语言 时间:
2018-08-25 15:01:47
阅读次数:
173
参考文章: 1.Java 新生代、老年代、持久代、元空间 2.Java内存与垃圾回收调优 3.方法区的Class信息,又称为永久代,是否属于Java堆? Java 中的堆是 JVM 所管理的最大的一块内存空间,主要用于存放各种类的实例对象,如下图所示: 在 Java 中,堆被划分成两个不同的区域:新 ...
分类:
其他好文 时间:
2018-08-24 23:34:34
阅读次数:
1564
1. jstat 查看pid为67008的进程的堆内存各个区域占用总容量百分比, 5秒刷新一次,共查询3次 运行结果如下: 说明: S0: Survivor0(新生代Survivor)是空的 S1: Survivor1(新生代Survivor)是空的 E: Eden(新生代Eden)占用0.38% ...
分类:
其他好文 时间:
2018-08-24 19:32:42
阅读次数:
179
堆相关配置-Xmx最大堆空间-Xms初始堆空间大小,如果初始堆空间耗尽,JVM会对堆空间扩容,其扩展上限为最大堆空间。通常-Xms与-Xmx设置为同样大小,避免扩容造成性能损耗。-Xmn设置新生代大小,设置一个较大的新生代会减少老年代的大小,新生代的大小一般设置为整个堆空间的1/3 或者1/4。-X... ...
分类:
编程语言 时间:
2018-08-16 14:57:35
阅读次数:
163