HotSpot JVM收集器 上面有7中收集器,分为两块,上面为新生代收集器,下面是老年代收集器。如果两个收集器之间存在连线,就说明它们可以搭配使用。 Serial(串行GC)收集器 Serial收集器是一个新生代收集器,单线程执行,使用复制算法。它在进行垃圾收集时,必须暂停其他所有的工作线程(用户 ...
分类:
其他好文 时间:
2016-11-17 01:22:41
阅读次数:
183
1.两个最基本的java回收算法:复制算法和标记清理算法 复制算法:两个区域A和B,初始对象在A,继续存活的对象被转移到B。此为新生代最常用的算法 标记清理:一块区域,标记要回收的对象,然后回收,一定会出现碎片,那么引出 标记-整理算法:多了碎片整理,整理出更大的内存放更大的对象 两个概念:新生代和 ...
分类:
编程语言 时间:
2016-10-29 22:09:28
阅读次数:
248
Garbage-First,面向服务端的垃圾收集器。 并行与并发:充分利用多核环境减少停顿时间, 分代收集:不需要配合其它收集器 空间整合:整体上看属于标记整理算法,局部(region之间)数据复制算法,运作期间不会产生空间碎片 停顿可预测,建立可以预测的停顿时间模型。 内存管理: 将整个java堆 ...
分类:
其他好文 时间:
2016-10-23 14:51:15
阅读次数:
173
新生代收集器,复制算法,并行收集,面向吞吐量要求(吞吐量优先收集器)。 吞吐量=用户代码运行时间/(用户代码运行时间+垃圾回收时间) -XX:MaxGCPauseMillis:控制最大垃圾收集停顿时间,大于零的毫秒数。 -XX:GCTimeRatio:吞吐量大小,0到100的整数,垃圾收集时间占总时 ...
分类:
其他好文 时间:
2016-10-23 14:48:53
阅读次数:
174
新生代收集器,CMS默认搭配,Serial的多线程版本。 -XX:UseParNewGC:指定使用SerialNew收集器。 -XX:ParalletGCThreads:指定限制垃圾收收集的线程数量。 默认开启的线程数等于cpu数。 多核环境较Serial效率高。 并行收集(非并发)。 复制算法。 ...
分类:
其他好文 时间:
2016-10-23 14:13:19
阅读次数:
197
【JVM垃圾收集算法】 1)标记-清除算法: 标记阶段:先通过根节点,标记所有从根节点开始的对象,未被标记的为垃圾对象(错了吧?) 清除阶段:清除所有未被标记的对象 2)复制算法: 将原有的内存空间分为两块,每次只使用一块,在垃圾回收时,将正在使用的内存中的存活对象复制到未被使用的内存块中,然后清除 ...
分类:
编程语言 时间:
2016-10-16 16:39:40
阅读次数:
213
物理地址 堆的物理地址分配对对象是不连续的。因此性能慢些。在GC的时候也要考虑到不连续的分配,所以有各种算法。比如,标记-消除,复制,标记-压缩,分代(即新生代使用复制算法,老年代使用标记——压缩) 栈使用的是数据结构中的栈,先进后出的原则,物理地址分配是连续的。所以性能快。 内存分别 堆因为是不连 ...
分类:
其他好文 时间:
2016-10-08 02:21:52
阅读次数:
169
标记-清除算法: 这是最基础的,就是之前所讲的两次标记,首先标记出所有 需要回收的对象,然后进行统一清除, 这有两缺点:一是效率低,标记和清除(开启低优先级进行回收)都是低效率的。第二是空间问题,标记清除会产生大量的内存碎片。 复制算法: 可以将内存分为大小相等的两块,每次只使用一块,当一快内存使用 ...
分类:
编程语言 时间:
2016-09-26 21:41:51
阅读次数:
156
垃圾收集器与内存分配策略
1对象死亡
1.引用计数算法
2.可达性分析算法
2.垃圾收集算法
1.标记-清除算法
2.复制算法
3.标记-整理算法
4.分代收集算法
3.hotspot...
分类:
其他好文 时间:
2016-09-05 15:26:30
阅读次数:
246
Atitit.常用的gc算法 1.1. 记-清除算法1 1.2. 复制算法1 1.3. 标记-整理算法2 1.4. 分代收集算法2 1.1. 记-清除算法 最基础的收集算法,算法分为标记和清除两个阶段:首先标记处所有要回收的对象,在标记完成之后统一回收所有被标记的对象。它最大的不足是效率不高,还会产 ...
分类:
编程语言 时间:
2016-09-05 14:05:36
阅读次数:
157