文档章节

The Generational Garbage Collection Process

秋风醉了
 秋风醉了
发布于 2017/09/01 10:54
字数 304
阅读 12
收藏 0

The Generational Garbage Collection Process

Now that you understand why the heap is separted into different generations, it is time to look at how exactly these spaces interact. The pictures that follow walks through the object allocation and aging process in the JVM.

1.First, any new objects are allocated to the eden space. Both survivor spaces start out empty.

2.When the eden space fills up, a minor garbage collection is triggered.

3.Referenced objects are moved to the first survivor space. Unreferenced objects are deleted when the eden space is cleared.

4.At the next minor GC, the same thing happens for the eden space. Unreferenced objects are deleted and referenced objects are moved to a survivor space. However, in this case, they are moved to the second survivor space (S1). In addition, objects from the last minor GC on the first survivor space (S0) have their age incremented and get moved to S1. Once all surviving objects have been moved to S1, both S0 and eden are cleared. Notice we now have differently aged object in the survivor space.

5.At the next minor GC, the same process repeats. However this time the survivor spaces switch. Referenced objects are moved to S0. Surviving objects are aged. Eden and S1 are cleared.

6.This slide demonstrates promotion. After a minor GC, when aged objects reach a certain age threshold (8 in this example) they are promoted from young generation to old generation.

7.As minor GCs continue to occure objects will continue to be promoted to the old generation space.

8.So that pretty much covers the entire process with the young generation. Eventually, a major GC will be performed on the old generation which cleans up and compacts that space.

===========END===========

本文转载自:http://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html

秋风醉了
粉丝 252
博文 532
码字总数 405694
作品 0
朝阳
程序员
私信 提问
[Erlang 0014]Erlang垃圾回收机制

前面的Erlang杂记中我们简单提到过Erlang的垃圾回收机制:1.以进程为单位进行垃圾回收 2.ETS和原子不参与垃圾回收.今天我们继续这一话题,关注更多关于细节. 在Erlang的官方文档中,关于垃圾回收...

唐玄奘
2017/12/03
0
0
JRockit垃圾回收优化参数

网上的调优文章很多,个人认为调整参数优化项目这个事情和内部代码有很大关系,常驻大内存和小内存更多线程的配置一定是不一样的,我记录的只是公司项目的调优:) 1.选择一个适合自己的垃圾...

神勇小白鼠
2013/01/07
1K
3
小型Java虚拟机--Avian

Avian 是一个轻量级的 Java 虚拟机和类库,提供了 Java 特性的一个有用的子集,适合开发跨平台、自包容的应用程序。 Avian 实现非常快速而且体积小,主要特性: Just-In-Time (JIT) 编译,快...

匿名
2011/08/09
4.3K
0
王一三学习笔记 | 理解Java垃圾回收

Serial GC、Parallel GC、Parallel Old GC(Parallel Compacting GC)、Concurrent Mark & Sweep GC (or "CMS")、Garbage First (G1) GC。 Young GC、Old GC、major GC、major GC、full GC。 ......

ijava
2017/12/07
0
0
Erlang进程堆垃圾回收机制

作者:http://blog.csdn.net/mycwq 每个Erlang进程创建之后都会有自己的PCB,栈,私有堆。erlang不知道他创建的进程会用到哪种场合下,所以一开始分配的内存比较小。如果分配的空间不够了,e...

天天顺利
2015/05/26
91
0

没有更多内容

加载失败,请刷新页面

加载更多

java通过ServerSocket与Socket实现通信

首先说一下ServerSocket与Socket. 1.ServerSocket ServerSocket是用来监听客户端Socket连接的类,如果没有连接会一直处于等待状态. ServetSocket有三个构造方法: (1) ServerSocket(int port);...

Blueeeeeee
今天
6
0
用 Sphinx 搭建博客时,如何自定义插件?

之前有不少同学看过我的个人博客(http://python-online.cn),也根据我写的教程完成了自己个人站点的搭建。 点此:使用 Python 30分钟 教你快速搭建一个博客 为防有的同学不清楚 Sphinx ,这...

王炳明
昨天
5
0
黑客之道-40本书籍助你快速入门黑客技术免费下载

场景 黑客是一个中文词语,皆源自英文hacker,随着灰鸽子的出现,灰鸽子成为了很多假借黑客名义控制他人电脑的黑客技术,于是出现了“骇客”与"黑客"分家。2012年电影频道节目中心出品的电影...

badaoliumang
昨天
15
0
很遗憾,没有一篇文章能讲清楚线程的生命周期!

(手机横屏看源码更方便) 注:java源码分析部分如无特殊说明均基于 java8 版本。 简介 大家都知道线程是有生命周期,但是彤哥可以认真负责地告诉你网上几乎没有一篇文章讲得是完全正确的。 ...

彤哥读源码
昨天
15
0
jquery--DOM操作基础

本文转载于:专业的前端网站➭jquery--DOM操作基础 元素的访问 元素属性操作 获取:attr(name);$("#my").attr("src"); 设置:attr(name,value);$("#myImg").attr("src","images/1.jpg"); ......

前端老手
昨天
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部