这篇说说如何从JVM的角度来理解线程,可以对Java的线程模型有一个更加深入的理解,对GC的一些细节也会理解地更加深刻。本文基于HotSpot的OpenJDK7实现。
我们知道JVM主要是用C++实现的,JVM定义的Thread的类继承结构如下:
Class hierarchy
- Thread
- NamedThread
- VMThread
-...
分类:
编程语言 时间:
2014-12-10 14:20:18
阅读次数:
212
垃圾回收 GCpublic class MyObject { private String id; public MyObject(String id) { this.id = id; } @Override public String toString() { return "MyObject{"...
分类:
编程语言 时间:
2014-12-10 14:09:55
阅读次数:
183
对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。 这仅仅代表我个人的意见,但我坚信一个精通GC的人...
分类:
编程语言 时间:
2014-12-09 20:02:46
阅读次数:
212
论文: A Fast Write Barrier for Generational Garbage Collectors
http://hoelzle.org/publications/write-barrier.pdf
老年代需要记录对新生代的对象引用,以便于新生代GC之后更改老年代相应位置的引用,不然就要扫描整个老年代了。这些标记称为Remembered Set。确保代际的引用位置...
分类:
编程语言 时间:
2014-12-09 17:52:02
阅读次数:
226
很多人都分不清Major GC, Full GC的概念,事实上我查了下资料,也没有查到非常精确的Major GC和Full GC的概念定义。分不清这两个概念可能就会对这个问题疑惑:Full GC会引起Minor GC吗?
经过一系列的查找和对JVM表现的分析,基本可以给Full GC和Major GC下一个定义了,这篇说一说概念和理由。
这篇文章Major GCs – Separati...
分类:
其他好文 时间:
2014-12-09 17:51:26
阅读次数:
245
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对象垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同版本的虚拟机所提供的收集器可能会有很的差别,并且一般会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。下面是Sun HotSpot虚拟机1.6版本Update22包含的所有收集器:
上图中,如果两个收集器之间存在连线,就...
分类:
编程语言 时间:
2014-12-09 17:43:07
阅读次数:
211
原文连接:http://www.linuxidc.com/Linux/2011-02/32211.htm这些都是典型的使用GNU的AUTOCONF和AUTOMAKE产生的程序的安装步骤。./configure是用来检测你的安装平台的目标特征的。比如它会检测你是不是有CC或GCC,并不是需要CC或GC...
分类:
系统相关 时间:
2014-12-09 15:35:30
阅读次数:
188
当对象判定为"已死"状态,虚拟就要采取一定的手段将这些对象从内存中移除,即回收垃圾,回收过程有采用一定的算法。如下是一些主要的垃圾收集算法:
1.标记-清除算法
该算法是最基础的算法,分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象。之所有说它是最基础的算法是因为后续的收集算法都是基于这种思路并对其缺点进行改进得到的。它的缺点主要有两个...
分类:
编程语言 时间:
2014-12-09 10:37:18
阅读次数:
191
在一些规模稍大的应用中,Java虚拟机(JVM)的内存设置尤为重要,想在项目中取得好的效率,GC(垃圾回收)的设置是第一步。 PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候...
分类:
编程语言 时间:
2014-12-08 22:38:30
阅读次数:
207
上一篇总结GC的基础算法,各种GC收集器的基本原理,还是比较粗粒度的概念。这篇会整理一些GC的常见概念,理解了这些概念,相信对GC有更加深入的理解
1. 什么时候会触发Minor GC?
Eden区域满了,或者新创建的对象大小 > Eden所剩空间 CMS设置了CMSScavengeBeforeRemark参数,这样在CMS的Remark之前会先做一次Minor GC...
分类:
其他好文 时间:
2014-12-08 15:42:02
阅读次数:
236