几种常见GC算法介绍

您所在的位置:网站首页 Gc战队的头像怎样制做 几种常见GC算法介绍

几种常见GC算法介绍

2023-10-29 03:05| 来源: 网络整理| 查看: 265

本文主要是对常用的GC算法(引用计数法、标记-清除法、复制算法、标记-清除算法)作出相关的说明,并对相关知识做简单的介绍。

一、什么是堆?

       堆指用于动态(即执行程序时)存放对象的内存空间。而这个对象,在面向对象的编程中,它指“具有属性和行为的事物”,然而在GC的世界中,对象表示的是“通过应用程序利用的数据的集合”。具体到Java堆,它是所有线程共享的一块内存区域,在虚拟机启动时创建。此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。(此处的对象实例可以理解为前面所说的对象,因为不仅仅Java有自动的GC,python、JavaScript等语言也有,所以在广义上说对象是更好的表述,当然,Java的数组也是分配在堆上的)。

 

二、GC算法的评判标准

      GC算法的评判标准主要是以下4点:

1、吞吐量:即单位时间内的处理能力。

2、最大暂停时间:因执行GC而暂停执行程序所需的时间。

3、堆的使用效率:鱼与熊掌不可兼得,堆使用效率和吞吐量、最大暂停时间是不可能同时满足的。即可用的堆越大,GC运行越快;相反,想要利用有限的堆,GC花费的时间就越长。

4、访问的局部性:在存储器的层级构造中,我们知道越是高速存取的存储器容量会越小(具体可以参看我写的存储器那篇文章)。由于程序的局部性原理,将经常用到的数据放在



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3