GC算法:引用计数法(Reference Counting)、标记清除法(Mark-Sweep)、复制算法(Copying)、标记压缩法(Mark-Compact)、分代算法(Generational Collecting)及分区算法(Region) ...
分类:
编程语言 时间:
2018-09-03 12:08:07
阅读次数:
152
洛谷P2761 1.考虑到所有的错误只有“修复,未修复”两种情况,所以可以用0,1标记压缩状态,采用位运算减少时空浪费。 又考虑到有修复时间的关系,将时间抽象成边,将状态抽象为点(设修复为0,未修复为1)最后从(1<<n)-1开始寻找到0的最短路,SPFA一边建图一边松弛即可。 2.实现过程中,难点 ...
分类:
其他好文 时间:
2018-05-13 13:35:54
阅读次数:
159
一、串行收集器 -XX:+UseSerialGC 从第二张图的时间可以看出来,复制算法的效率要比标记压缩算法高的多。 二、并行收集器 -XX: +UseParNewGC (新生代并行,老年代串行) -XX: +UseParallelGC (新生代并行,老年代串行) -XX: +UsePrallelO ...
分类:
其他好文 时间:
2018-04-29 20:31:50
阅读次数:
248
一、堆的回顾二、串行回收器 最古老,最稳定 效率高 可能会产生较长的停顿(只用一个线程去回收) -XX:+UseSerialGC 新生代、老年代都使用串行回收 新生代 复制算法 老年代 标记-压缩 0.844: [GC 0.844: [DefNew: 17472K->2176K(19648K), .... ...
分类:
其他好文 时间:
2018-03-02 18:48:37
阅读次数:
174
【简述】 垃圾回收GC(Garbage Collection),GC中的垃圾,特指存于内存中不会再使用的对象,回收相当于清除垃圾。 垃圾回收有很多种算法,如:引用计数法、标记压缩法、复制算法、分代分区思想。 [ 引用计数法 ] 是比较古老经典的垃圾收集算法,其核心就是对象在被其引用时计数器+1,而当 ...
分类:
其他好文 时间:
2018-02-12 22:58:51
阅读次数:
176
jvm垃圾回收目前都是采用分代回收机制,old代和new代分别采用不同算法。 按照基本回收策略分:复制、标记-清除算法、标记-压缩算法 复制算法(copying) 将内存分成两块,每次只使用其中一块,垃圾回收时,将标记的对象拷贝到另外一块中,然后完 全清除原来使用的那块内存。复制后的空间是连续的。复 ...
分类:
其他好文 时间:
2018-01-28 00:03:36
阅读次数:
129
老年代中使用标记压缩算法取代标记清除算法。 它将存活的对象移动到一块连续的内存空间,然后清除垃圾对象。 当执行压缩之后,已用空间和未用空间都各自一边,彼此之间维系着一个记录下一次分配起始点的标记指针,当为新对象分配内存的时候则可以使用指针碰撞技术修改指针偏移量将新对象分配在第一个空闲内存位置上,为新 ...
分类:
编程语言 时间:
2017-12-31 16:40:29
阅读次数:
180
垃圾回收的概念和其算法 垃圾回收(Garbage Collection,简称GC),GC中的垃圾特指存于内存中,不会再被使用的对象,而回收就是相当于把垃圾“倒掉”。垃圾回收有很多算法,如引用计数法,标记压缩法,复制算法,分代、分区的思想。 引用计数法:这是个比较古老而经典的垃圾收集算法,其核心就是在 ...
分类:
其他好文 时间:
2017-08-17 10:21:21
阅读次数:
181
标记-清除 标记-清除算法是现代垃圾回收算法的思想基础。标记-清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段。一种可行的实现是,在标记阶段,首先通过根节点,标记所有从根节点开始的可达对象。因此,未被标记的对象就是未被引用的垃圾对象。然后,在清除阶段,清除所有未被标记的对象 标记-整理 根据老年代... ...
分类:
编程语言 时间:
2017-07-08 21:01:56
阅读次数:
217
引用计数法对于一个对象A,只要有任何一个对象引用了A,则A的引用计数器就加1,当引用失效时,引用计数器就减1.只要A对象的引用计数器的值为0,则对象A就不可能再被使用。实现也很简单,只需要为每个对象配备一个整型的计数器即可。缺点:1.无法处理循环引用的情况2.引用计算器要求在每次引用产生和消除的时候... ...
分类:
编程语言 时间:
2017-04-04 00:53:30
阅读次数:
226