jvm
tuiyidelongdidi
这个作者很懒,什么都没留下…
展开
-
jvm学习笔记:java运行时内存区域
转自:{之所以,扯淡}http://www.cnblogs.com/warden/archive/2012/11/18/2775874.html Java与C++之间有一堵由内存动态分配和垃圾收集技术所围成的高墙,墙外面的人想进去,墙里面的人想出来。运行时数据区域: Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,...原创 2014-04-09 21:18:05 · 110 阅读 · 0 评论 -
jvm学习笔记:第4章 虚拟机性能监控与故障处理工具
4.1 概述 给一个系统定位问题的时候,知识、经验是关键基础,数据是依据,工具是运用知识处理数据的手段。这里说的数据包括:运行日志、异常堆栈、GC日志、线程快照(threaddump/javacore文件)、堆转储快照(heapdump/hprof文件)等。4.2JDK的命令行工具 这些命令工具大多数是jdk\lib\tools.jar类库的一层薄包装而已,它们主要的...原创 2014-04-16 16:31:10 · 129 阅读 · 0 评论 -
jvm学习笔记:第3章java判断对象是否死亡
3.2.2 根搜索算法在主流的商用程序语言中(Java和C#,甚至包括前面提到的古老的Lisp),都是使用根搜索算法(GC Roots Tracing)判定对象是否存活的。这个算法的基本思路就是通过一系列的名为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连(用图论的话...原创 2014-04-17 14:10:33 · 256 阅读 · 0 评论 -
jvm学习笔记:3.3垃圾收集算法
3.3.1 标记-清除算法最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象,它的标记过程其实在前一节讲述对象标记判定时已经基本介绍过了。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其缺点进行改进而得到的。它的主要缺点有两个:一个是效...原创 2014-04-17 17:43:15 · 70 阅读 · 0 评论 -
jvm学习笔记:3.5Java内存分配策略
一般把java堆分成新生代和老年代。垃圾回收器在新生代使用复制算法时:将新生代分成Eden和2个survivor。 简单来说,对象内存分配主要是在堆中分配。但是分配的规则并不是固定的,取决于使用的收集器组合以及JVM内存相关参数的设定一,对象优先在新生代Eden区分配/** * * 类描述:对象优先在eden分配,以及minor gc垃圾清理 * jv...原创 2014-04-17 22:20:57 · 201 阅读 · 0 评论 -
jvm学习笔记:JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置...原创 2014-04-17 22:22:39 · 101 阅读 · 0 评论