JVM
文章平均质量分 83
iteye_7742
这个作者很懒,什么都没留下…
展开
-
GC悲观策略之Parallel GC篇
先来看段代码: import java.util.*; public class SummaryCase{ public static void main(String[] args) throws Exception{ List<Object> caches=new ArrayList<Object>(); for(int i=0;i...原创 2011-09-21 15:52:55 · 342 阅读 · 0 评论 -
BTrace使用简介
很多时候在online的应用出现问题时,很多时候我们需要知道更多的程序的运行细节,但又不可能在开发的时候就把程序中所有的运行细节都打印到日志上,通常这个时候能采取的就是修改代码,重新部署,然后再观察,但这种方法对于online应用来说不是很好,另外一方面如果碰到不好改的代码,例如引用的其他的外部的包什么的,就很麻烦了,BTrace就是一个可以在不改代码、不重启应用的情况下,动态的查看程序运行细节的...原创 2011-09-21 21:52:12 · 64 阅读 · 0 评论 -
JVM简介
JVM基础 从Java平台的逻辑结构上来看,我们可以从下图来了解JVM: 从上图能清晰看到Java平台包含的各个逻辑模块,也能了解到JDK与JRE的区别 对于JVM自身的物理结构,我们可以从下图鸟瞰一下: 对于JVM的学习,在我看来这么几个部分最重要: Java代码编译和执行的整个过程 JVM内存管理及垃圾回收机制 JVM代码编译和执行过程 J...原创 2011-09-24 13:10:06 · 68 阅读 · 0 评论 -
JVM学习笔记系列(一)
对于从事C/C++程序开发的开发人员来说,在内存管理领域,他们既是拥有最高权力的皇帝,又是从事最基础工作的劳动人民—既拥有每一个对象的“所有权”,又担负着每一个对象生命开始到终结的维护责任。 对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现内存泄漏和内存溢出问题,看起来由虚拟机管理内...原创 2012-05-30 14:53:14 · 104 阅读 · 0 评论 -
JVM学习笔记系列(二)
在Java虚拟机规范的描述中,除了程序计数器外,虚拟机内存的其他几个运行时区域都有发生OutOfMemoryError(也就是大家常说的OOM)异常的可能,大概分类有以下几种: Java堆溢出 虚拟机栈和本地方法栈溢出 运行时常量池溢出 方法区溢出 本机直接内存溢出 Java堆溢出 Java堆用于储存对象实例,我们只要不断地创建对象,并且保证...原创 2012-05-30 14:53:38 · 86 阅读 · 0 评论 -
JVM学习笔记系列(三)
在Sun Hotspot的JVM内存管理白皮书中描述GC的概念是指垃圾收集器,而不是垃圾回收。例如在做GC调优的时候,选择的不是一种垃圾回收方式,你选择的是一种垃圾的收集器。垃圾收集器的不同在于,它不仅仅是做垃圾回收,他还决定了内存是如何分配的。也就是在选择GC的时候,因为他决定的内存分配,所以也就决定了应用的处理速度。 JVM - 内存分配 JVM在分配堆内存...原创 2012-05-30 14:54:53 · 98 阅读 · 0 评论 -
JVM学习笔记系列(四)
标记 -清除算法 最基础的收集算法是“标记-清除”(Mark-Sweep)算法,如它的名字一样,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记的对象,它的标记过程其实在前一节讲述对象标记判定时已经基本介绍过了。之所以说它是最基础的收集算法,是因为后续的收集算法都是基于这种思路并对其缺点进行改进而得到的。它的主要缺点有两个:一...原创 2012-05-31 00:07:49 · 95 阅读 · 0 评论