JAVA 虚拟机
CYZ412
这个作者很懒,什么都没留下…
展开
-
实例分析Java Class的文件结构
实例分析Java Class的文件结构原文链接:http://coolshell.cn/articles/9229.html 今天把之前在Evernote中的笔记重新整理了一下,发上来供对java class 文件结构的有兴趣的同学参考一下。学习Java的朋友应该都知道Java从刚开始的时候就打着平台无关性的旗号,说“一次编写,到处运行”,其实说到无关性,Java平台还有另外一...原创 2013-10-11 17:48:05 · 88 阅读 · 0 评论 -
JVM基础一:JVM内存组成及分配
java内存组成介绍:堆(Heap)和非堆(Non-heap)内存按照官方的说法:“Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配。堆是在 Java 虚拟机启动时创建的。”“在JVM中堆之外的内存称为非堆内存(Non-heap memory)”。可以看出JVM主要管理两种类型的内存:堆和非堆。简单来说堆就是Java代码可及的内存,是留给开发人员使用的;非...原创 2015-07-22 10:15:54 · 97 阅读 · 0 评论 -
JVM基础二:GC策略&内存申请、对象衰老
JVM里的GC(Garbage Collection)的算法有很多种,如标记清除收集器,压缩收集器,分代收集器等等,详见HotSpot VM GC 的种类现在比较常用的是分代收集(generational collection,也是SUN VM使用的,J2SE1.2之后引入),即将内存分为几个区域,将不同生命周期的对象放在不同区域里:young generation,tenured gen...原创 2015-07-22 10:21:14 · 100 阅读 · 0 评论 -
JVM基础三:JVM参数设置、分析
不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参数,可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,由于各个程序具备不同的特点,如:web和GUI程序就有很大区别(Web可以适当的停顿,但GUI停顿是客户无法接受的),而且由于跑在各个机器上的配置...原创 2015-07-22 10:24:27 · 167 阅读 · 0 评论 -
JVM基础四:生产环境参数实例及分析【生产环境实例增加中】
java application项目(非web项目)改进前:-Xms128m -Xmx128m -XX:NewSize=64m -XX:PermSize=64m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=78 -XX:ThreadStackSize=128-Xloggc...原创 2015-07-22 10:25:59 · 135 阅读 · 0 评论 -
JVM调优总结二:新一代的垃圾回收算法
垃圾回收的瓶颈传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在几百甚至几十毫秒以内,如果分代垃圾回收方式要达到这个指标,只能把最大堆的设置限制在一个相对较小...原创 2015-07-23 11:22:13 · 123 阅读 · 0 评论 -
JVM调优总结三:典型配置举例
以下配置主要针对分代垃圾回收算法而言。堆大小设置年轻代的设置很关键JVM中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。...原创 2015-07-23 11:22:30 · 143 阅读 · 0 评论 -
JVM调优总结四:分代垃圾回收详述
摘自:http://developer.51cto.com/art/201201/311696.htm为什么要分代分代的垃圾回收策略,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socke...原创 2015-07-23 11:22:47 · 142 阅读 · 0 评论 -
JVM调优总结五:垃圾回收面临的问题
摘自:http://developer.51cto.com/art/201201/311586.htm如何区分垃圾上面说到的“引用计数”法,通过统计控制生成对象和删除对象时的引用数来判断。垃圾回收程序收集计数为0的对象即可。但是这种方法无法解决循环引用。所以,后来实现的垃圾判断算法中,都是从程序运行的根节点出发,遍历整个对象引用,查找存活的对象。那么在这种方式的实现中,垃圾回收从哪儿开...原创 2015-07-23 11:23:30 · 124 阅读 · 0 评论