heap堆算法的使用分析

Posted mutong1228

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了heap堆算法的使用分析相关的知识,希望对你有一定的参考价值。

新生代  --复制算法

老年代 --标记压缩清除算法

分代 分区思想

垃圾回收的任务是识别和回收垃圾对象进行内存清理,为了让垃圾回收器可以高效的执行,大部分情况下,会要求系统进入一个停顿的状态。

停顿的目的是终止所有应用线程,只有这样系统才不会有新的垃圾产生,同时停顿保证了系统状态正在某一个瞬间的一致性,也有益于更好的低标记垃圾对象。

因此在垃圾回收时,都会产生应用程序的停顿。

分代算法:就是根据对象的特点把内存分成N块,而后根据每个内存的特点使用不同的算法。

对于新生代和老年代来说,新生代回收频率很高,但是每次回收耗时都很短,而老年代回收频率很低,但是耗时会相对较长,所以尽量减少老年代的GC。

分区算法:其主要就是将整个内存分为N多个小的独立空间,每个小空间都可以独立使用,这样细粒度的控制一次回收多少个小空间,而不是对占整个空间

进行GC,从而提升性能,并减少GC停顿的时间。

花太香

以上是关于heap堆算法的使用分析的主要内容,如果未能解决你的问题,请参考以下文章

堆状态分析的利器——gperftools的Heap Profiler

排序算法---堆排序

堆排序算法实现及其效率和稳定性分析(C语言)

STL heap部分源代码分析

golang中container/heap包源码分析

利用Jmap进行简单日志分析